Phủ định một biến boolean và gán nó cho một biến mới [trùng lặp]

Dec 31 2020

Trong tập lệnh Bash, tôi muốn định nghĩa một biến boolean yđể lưu trữ giá trị phủ định của một biến boolean khác x. Tập lệnh sau,

#!/bin/bash

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

đặt biến ythành 1. Làm cách nào tôi có thể thay đổi yđể nó đánh giá falsethay thế?

Trả lời

3 axiac Dec 31 2020 at 06:32

Bash không có khái niệm về giá trị boolean cho các biến. Các giá trị của các biến của nó luôn là chuỗi. Chúng có thể được xử lý dưới dạng số trong một số ngữ cảnh nhưng đó là tất cả những gì nó có thể làm.

Bạn có thể sử dụng 10thay vào đó hoặc bạn có thể so sánh chúng (với =hoặc ==) dưới dạng chuỗi với truefalsevà giả sử chúng là boolean. Mã sẽ dễ đọc hơn nhưng chúng vẫn là chuỗi :-)