ลบตัวแปรบูลีนและกำหนดให้กับตัวแปรใหม่ [ซ้ำกัน]

Dec 31 2020

ในสคริปต์ทุบตีฉันต้องการที่จะกำหนดตัวแปรบูลีนในการจัดเก็บค่าเมื่อตะกี้ของตัวแปรบูลอีกy xสคริปต์ต่อไปนี้

#!/bin/bash

x=true
y=$(( ! "${x}" ))
echo "${y}"

ตั้งค่าตัวแปรyเป็น 1 ฉันจะเปลี่ยนyเพื่อให้มันประเมินเป็นfalseแทนได้อย่างไร

คำตอบ

3 axiac Dec 31 2020 at 06:32

Bash ไม่มีแนวคิดเรื่องค่าบูลีนสำหรับตัวแปร ค่าของตัวแปรเป็นสตริงเสมอ สามารถจัดการเป็นตัวเลขได้ในบางบริบท แต่นั่นคือทั้งหมดที่ทำได้

คุณสามารถใช้1และ0แทนหรือคุณสามารถเปรียบเทียบพวกเขา (มี=หรือ==) เป็นสตริงที่มีtrueและfalseและหลอกพวกเขาเป็นแบบบูล รหัสจะอ่านได้ง่ายขึ้น แต่ยังคงเป็นสตริง :-)