選擇的結果之一,我想隨機選擇兩種結果之一SHrandomally在SH
#!/bin/sh
if [$[ $RANDOM % 2] -eq 1 ]
then
echo yes
else
echo no
fi
給
sh-3.2$ sh test.sh
test.bash: line 4: [1: command not found
no
顯然,它試圖執行(0,1 )作爲命令。我究竟做錯了什麼?
選擇的結果之一,我想隨機選擇兩種結果之一SHrandomally在SH
#!/bin/sh
if [$[ $RANDOM % 2] -eq 1 ]
then
echo yes
else
echo no
fi
給
sh-3.2$ sh test.sh
test.bash: line 4: [1: command not found
no
顯然,它試圖執行(0,1 )作爲命令。我究竟做錯了什麼?
只是把一個空間的第一[之後,像
#!/bin/sh
if [ $[ $RANDOM % 2] -eq 1 ]
then
echo yes
else
echo no
fi
這裏交配,你只是錯過the syntax一點:
#!/bin/sh
if [[ $((RANDOM % 2)) -eq 1 ]] ; then
echo "yes"
else
echo "no"
fi
現在,如果你想打動揭掉的朋友,你可以請嘗試just this:
[[ $((RANDOM % 2)) -eq 1 ]] && echo "yes" || echo "no"
順便說一句,最佳做法和指南,我strongl y推薦這本網上書:Advanced Bash-Scripting Guide
乾杯!
如果您正在使用bash,您可以使用((expression))
格式:
#! /bin/sh
if ((RANDOM%2==1)); then
echo yes
else
echo no
fi
我意識到這一點,但我希望這是可移植的。 – user606723
哦嘖。 *** \ *面對手掌\ ****謝謝。 – user606723
呃..那''$ [$ RANDOM%2]''似乎有點不正統,但仍然......爲什麼不......會做到這一點。 :) – filippo