W jaki sposób należy to zmienić, aby sprawdzić, czy val
ma parzystą lub nieparzystą wartość liczbową?Jak sprawdzić, czy zmienna ma parzystą (nieparzystą) wartość liczbową w bash?
val=2
if $((RANDOM % $val)); ...
W jaki sposób należy to zmienić, aby sprawdzić, czy val
ma parzystą lub nieparzystą wartość liczbową?Jak sprawdzić, czy zmienna ma parzystą (nieparzystą) wartość liczbową w bash?
val=2
if $((RANDOM % $val)); ...
$ a=4
$ [ $((a%2)) -eq 0 ] && echo "even"
even
$ a=3
$ [ $((a%2)) -eq 0 ] && echo "even"
Nauczyłem się czegoś nowego dzięki logicznym poleceniom AND i echo. Dzięki. – shparekh
$((...))
jest tylko wyrazem. Jego wynik pojawia się tam, gdzie bash
oczekuje polecenia.
POSIX kompatybilny byłoby:
if [ "$((RANDOM % 2))" -ne 0 ];
ale ponieważ RANDOM
nie jest zdefiniowane w POSIX albo, można również użyć polecenia prawo bash
dla zadania: arytmetyczna komenda związek ocena:
if ((RANDOM % 2)); then
To jest dziwne (tj. Trudne do odczytania), że 'if ((RANDOM% 2)); wtedy "będzie prawdziwe, gdy RANDOM NIE jest wielokrotnością 2 ... –
Jest to ten sam idiom powszechnie używany w innych językach. C miałoby 'if (random/2) {...}'. Python miałby 'if random/2: ...'. – chepner
foo=6
if [ $((foo%2)) -eq 0 ];
then
echo "even";
else
echo "odd";
fi
To rozwiązało mój problem. – shparekh
Co chcesz sprawdzić? – fedorqui
Potrzebuję tego, aby była to poprawna instrukcja warunkowa, aby sprawdzić, czy zmienna losowa jest równa. Teraz po prostu mówi: "0: command not found" – lizarisk
Podoba Ci się to? http://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash –