Tôi nên thay đổi điều này như thế nào để kiểm tra xem val
có giá trị số chẵn hay lẻ không?Làm cách nào để kiểm tra xem biến có giá trị số chẵn (không lẻ) trong bash không?
val=2
if $((RANDOM % $val)); ...
Tôi nên thay đổi điều này như thế nào để kiểm tra xem val
có giá trị số chẵn hay lẻ không?Làm cách nào để kiểm tra xem biến có giá trị số chẵn (không lẻ) trong bash không?
val=2
if $((RANDOM % $val)); ...
$ a=4
$ [ $((a%2)) -eq 0 ] && echo "even"
even
$ a=3
$ [ $((a%2)) -eq 0 ] && echo "even"
Đã học được điều gì đó mới mẻ với lệnh logic AND và echo. Cám ơn. – shparekh
$((...))
chỉ là một biểu hiện. Kết quả của nó xuất hiện ở nơi bash
mong đợi một lệnh.
Một POSIX tương thích sẽ là:
if [ "$((RANDOM % 2))" -ne 0 ];
nhưng vì RANDOM
không được định nghĩa trong POSIX một trong hai, bạn cũng có thể sử dụng lệnh ngay bash
cho công việc: một lệnh phức hợp đánh giá số học:
if ((RANDOM % 2)); then
nó là lạ (ví dụ, khó đọc) rằng 'if ((RANDOM% 2)); sau đó' sẽ đúng khi RANDOM KHÔNG phải là bội số của 2 ... –
Đây là thành ngữ tương tự thường được sử dụng trong các ngôn ngữ khác. C sẽ có 'if (random/2) {...}'. Python sẽ có 'if random/2: ...'. – chepner
foo=6
if [ $((foo%2)) -eq 0 ];
then
echo "even";
else
echo "odd";
fi
Điều này giải quyết được vấn đề của tôi. – shparekh
Bạn muốn kiểm tra điều gì? – fedorqui
Tôi cần đây là câu lệnh có điều kiện chính xác để kiểm tra xem biến ngẫu nhiên có đồng đều hay không. Bây giờ nó chỉ nói: "0: lệnh không tìm thấy" – lizarisk
Như thế này? http://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash –