40

これをどのように変更しvalて、数値が偶数か奇数かを確認するにはどうすればよいですか?

val=2
if $((RANDOM % $val)); ...
4

3 に答える 3

62
$ a=4

$ [ $((a%2)) -eq 0 ] && echo "even"
even

$ a=3

$ [ $((a%2)) -eq 0 ] && echo "even"
于 2013-03-27T13:26:07.907 に答える
42
foo=6

if [ $((foo%2)) -eq 0 ];
then
    echo "even";
else
    echo "odd";
fi
于 2013-03-27T13:28:47.540 に答える
12

$(( ... ))は単なる表現です。その結果bashは、コマンドが必要な場所に表示されます。

POSIX 互換のソリューションは次のようになります。

if [ "$(( RANDOM % 2))" -ne 0 ]; 

しかし、RANDOMPOSIX でも定義されていないbashため、ジョブに適切なコマンドを使用することもできます: 算術評価複合コマンド:

if (( RANDOM % 2 )); then
于 2013-03-27T13:28:20.637 に答える