2014-10-30 87 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