当前位置: 技术问答>linux和unix
大家快快帮帮我呀!shell的语法出错,一直调不出来。
来源: 互联网 发布时间:2015-10-31
本文导语: 写了一个简单的脚本如下: echo -n "Enter keyword:" read ww while [ $ww =="" ] do echo "keyword not entered" echo -n "Enter keyword:" read ww done echo "$ww" 也就想确认在没输入的情况下提示用户输入。 当我在没输入时可以正常运行...
写了一个简单的脚本如下:
echo -n "Enter keyword:"
read ww
while [ $ww =="" ]
do
echo "keyword not entered"
echo -n "Enter keyword:"
read ww
done
echo "$ww"
也就想确认在没输入的情况下提示用户输入。
当我在没输入时可以正常运行:
Enter keyword:
keyword not entered
Enter keyword:
可是在我有输入的情况下,在它显示前总要显示一行“/root/Temp/test.sh: line 4: [: r: unary operator expected”,如下:
Enter keyword:r
/root/Temp/test.sh: line 4: [: r: unary operator expected
r
实在不解哪里有错呀
------------------------------------------------------
更奇怪的是我把那句 while [ $ww =="" ] 改成 while [ $ww == "" ] 在每次不输入回车时显示:
[: ==: unary operator expected。。。。。。。。。太怪了,大家帮帮我吧。
echo -n "Enter keyword:"
read ww
while [ $ww =="" ]
do
echo "keyword not entered"
echo -n "Enter keyword:"
read ww
done
echo "$ww"
也就想确认在没输入的情况下提示用户输入。
当我在没输入时可以正常运行:
Enter keyword:
keyword not entered
Enter keyword:
可是在我有输入的情况下,在它显示前总要显示一行“/root/Temp/test.sh: line 4: [: r: unary operator expected”,如下:
Enter keyword:r
/root/Temp/test.sh: line 4: [: r: unary operator expected
r
实在不解哪里有错呀
------------------------------------------------------
更奇怪的是我把那句 while [ $ww =="" ] 改成 while [ $ww == "" ] 在每次不输入回车时显示:
[: ==: unary operator expected。。。。。。。。。太怪了,大家帮帮我吧。
|
这个没有问题了,你试试,$ww加上“”,如果ww为空表示“”。
#!/bin/sh
echo -n "Enter keyword:"
read ww
while [ "$ww" == "" ]
do
echo "keyword not entered"
echo -n "Enter keyword:"
read ww
done
echo "$ww"
#!/bin/sh
echo -n "Enter keyword:"
read ww
while [ "$ww" == "" ]
do
echo "keyword not entered"
echo -n "Enter keyword:"
read ww
done
echo "$ww"