#!/bin/sh
if test -n $1
then
echo "Some input entered"
echo $1
else
echo "no input entered"
fi
如果我没有将参数传递给shell脚本,上面的代码应该说“没有输入”。当我不传递任何参数时,echo $ 1显示一个空行。 即使没有任何争论,它也说“输入了一些信息”。
答案 0 :(得分:5)
在$1
周围加上引号。没有它们,1美元就会消失,test
容易混淆地报告“没有”不是空的。
if test -n "$1"
then
....
答案 1 :(得分:1)
跳过test
并在$1
附近加上引号:
#!/bin/sh
if [ -n "$1" ]
then
echo "Some input entered"
echo $1
else
echo "no input entered"
fi