当使用以下参数执行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.
世界变得疯了吗? :)
答案 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
我希望这会有所帮助。