我写了一个小的korn脚本,但是当我尝试运行脚本时,它不会回显我想要显示的消息。当我尝试通过
运行它时ksh script.sh -1
它没有回应消息。
if [ $# -le 0 ]
then
echo "That is a negative integer!"
exit
fi
答案 0 :(得分:2)
在bash / ksh中$#
表示作为参数传递的参数数量。
你需要的是
if [ ${1:-0} -lt 0 ] # $1 is the first parameter
then
echo "That is a negative integer!"
exit
fi
或上述
的简短版本[ ${1:-0} -lt 0 ] && echo "That is a negative integer!" && exit
修改1
${1:-0}
提供默认值。-le
替换为-lt
修改2
如果您期待匹配特定字符串,请执行以下操作
[ ${1:-NULL} = "StringToMatch" ] && DoSomething
如果您正在查看输出是否只有至少一个非数字字符,请执行以下操作
[[ {1:-NULL} =~ [^[:digit:]]+ ]] && DoSomething
警告: ksh