2014-10-30 39 views
0

在这里的菜鸟!这是一个非常简单的。 我想写一个脚本,要求用户输入。 然后阅读的输入和做一些东西。 但我首先要确保提供输入。没有键盘输入时给出错误并退出

实施例:

echo "Please provide input1:" 
read Input1 
echo "Please provide input2:" 
read Input2 

if [ -z "$Input1" ] 
echo "You did not provide input1" 
exit 
else if [ -z "$Input2" ] 
echo "You did not provide input2" 
exit 
fi 

但是上述方法不工作。有没有办法让它看起来更具可读性?有没有更简单的方法?

+0

'Input1'是一个文字字符串,您想引用该变量。使用'“$ Input1”'。 – 2014-10-30 00:38:33

+0

因此,通过“不工作”你的意思是你得到一个语法错误?你应该说,并在你的文章中包含语法错误。 – 2014-10-30 00:50:44

+0

是的,@ glennjackman elif是我所需要的。但是有更好的方法吗?我不喜欢在脚本中间有这段代码。有没有更好的方法来做到这一点? – SSF 2014-10-30 00:53:08

回答

1

你想elifelse if,和你缺少强制性then关键字:https://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs

read -p "Please provide input1: " Input1 
read -p "Please provide input2: " Input2 

if [ -z "$Input1" ]; then 
    echo "You did not provide input1" 
    exit 
elif [ -z "$Input2" ]; then 
    echo "You did not provide input2" 
    exit 
fi 

如果,而不是退出,你要提供一个默认值,你可以这样做:

read -p "Please provide input1: " Input1 
read -p "Please provide input2: " Input2 
: ${Input1:=first default value} 
: ${Input2:=second default value} 
echo "Input1: $Input1" 
echo "Input2: $Input2" 
+0

谢谢。这解决了这个问题。该链接非常有用。 – SSF 2014-10-30 01:03:07