我花了24小时试图找出在KSH中使用参数执行If语句的人。
我的脚本是:
VAR=failed
if [[$1 -gt $2]];then
$VAR=Success
fi
echo $VAR
我得到的输出是
$FooBar.ksh 3 1
FooBar.ksh[2]: [[3: not found
failed
答案 0 :(得分:3)
始终在 test 周围放置空格,所以:
VAR=failed
if [[ $1 -gt $2 ]]; then
VAR='Success'
fi
echo "$VAR"
为变量赋值时没有$
sigil
% ksh script.ksh 1 2
failed
% ksh script.ksh 2 1
Success
"双引号"每个包含空格/元字符和每个扩展的文字:"$var"
,"$(command "$var")"
,"${array[@]}"
,"a & b"
。使用'single quotes'
代码或文字$'s: 'Costs $5 US'
,ssh host 'echo "$HOSTNAME"'
。见
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
对于简单的脚本变量,请避免使用大写,将这些变量用于系统变量