ลบตัวแปรบูลีนและกำหนดให้กับตัวแปรใหม่ [ซ้ำกัน]
ในสคริปต์ทุบตีฉันต้องการที่จะกำหนดตัวแปรบูลีนในการจัดเก็บค่าเมื่อตะกี้ของตัวแปรบูลอีกy
x
สคริปต์ต่อไปนี้
#!/bin/bash
x=true
y=$(( ! "${x}" ))
echo "${y}"
ตั้งค่าตัวแปรy
เป็น 1 ฉันจะเปลี่ยนy
เพื่อให้มันประเมินเป็นfalse
แทนได้อย่างไร
คำตอบ
3 axiac
Bash ไม่มีแนวคิดเรื่องค่าบูลีนสำหรับตัวแปร ค่าของตัวแปรเป็นสตริงเสมอ สามารถจัดการเป็นตัวเลขได้ในบางบริบท แต่นั่นคือทั้งหมดที่ทำได้
คุณสามารถใช้1
และ0
แทนหรือคุณสามารถเปรียบเทียบพวกเขา (มี=
หรือ==
) เป็นสตริงที่มีtrue
และfalse
และหลอกพวกเขาเป็นแบบบูล รหัสจะอ่านได้ง่ายขึ้น แต่ยังคงเป็นสตริง :-)