我想测试两个变量是否存在,之后我使用“read”创建它。如果用户只输入我想要的两个变量中的一个,则会显示错误。bash中的错误 - 一元运算符预期存在-e
有我的代码:
while true;
do
echo "Saisissez deux variables x et y sous la forme [x y]"
read x y
if [ !-e $x ] || [ !-e $y ] <<<<<< problem ligne
then
echo "Vous devez renseigner deux nombres x et y"
elif [ $x = "." ]
then
exit 0
else
calcul $x $y
fi
done
并没有当我刚进入一个参数错误:
[: !-e: unary operator expected
感谢您的帮助:)
如果你把什么空间了''之间和'-e '? –
'-e'运算符检查是否存在具有该名称的文件。 '!后面需要一个空格!' - shell要求每个命令和参数都是一个单独的标记(除括号,重定向和其他一些语法细节外)。你也应该大致双引号的用户输入,所以' “$ X”''亲$ x'和' “$ Y”''亲$ y'。 – tripleee
感谢您的回复:)我试图检测用户是否按下了没有任何价值的回车键。我试图用-e来防止这一点,但它不工作:/ – toshiro92