检查KSH脚本参数的数量

时间:2011-12-21 23:13:08

标签: ksh

当使用以下参数执行myscript时,它将失败并显示错误255(下方)

         1     2     3                4       5     6     7
myscript value value /my/path/to/file my_file /tmp/ value value

检查传递的参数数量

if [ ${#} -ne 7 ]
echo ${#}          // Actually prints 7
then
    echo "ERROR 255: Must provide the following 7 parameters:
                   one two three four five six seven"
    exit 255
fi

所以...如果数字不是7,退出,但要告诉数字是什么.. 7.

世界变得疯了吗? :)

1 个答案:

答案 0 :(得分:5)

你确定你的问题中没有拼写错误吗?

echo ${#}          // Actually prints 7
if [ ${#} -ne 7 ]
then
    echo "ERROR 255: Must provide the following 7 parameters:
                   one two three four five six seven"
    exit 255
fi

echo ${#}if [ ... ]之间使用then是语法错误,并使我的ksh爆炸;-)否则我认为您的代码看起来正确。

但为什么不使用更新的ksh数学评估功能(也许这会解决你的问题)。

echo ${#}          // Actually prints 7
if (( ${#} != 7 )) ; then
    echo "ERROR 255: Must provide the following 7 parameters:
                   one two three four five six seven"
    exit 255
fi

我希望这会有所帮助。