2017-07-02 46 views
1

我是新來的shell腳本,我正在寫這個腳本來創建具有權限的文件並檢查文件是否存在。一切工作正常,但是當我沒有指定參數說它缺少參數,但仍然給我沒有這樣的文件或目錄錯誤,我沒有得到。有人可以幫忙嗎?錯誤檢查 - shellscript

代碼:

#!/bin/bash`enter code here` 
# checking the argument 
if [[ ! $1 ]]; then 
    echo "missing argument, please check !" 
fi 

# variable holding the script name. 
scriptname="$1" 

# creates shellscript and changes the permissions of script to u+x. 
# Adds #!/bin/bash line to script. 
if [[ ! -e "${scriptname}" ]]; then 
    echo "#!/bin/bash" >> "${scriptname}" && chmod u+x "${scriptname}" 
else 
    echo "file " ${scriptname} " exists, create a new file." 
fi 
+1

'回聲後「失蹤的說法,請檢查!」'你可能要添加'exit 1'聲明(下一行) – janos

+1

@janos感謝您的糾正,現在工作正常。 – Arun

回答

0

這裏的根本問題是,經過條件滿足由 @janos[ here ]指針你不退出程序。因此,解決問題的方法是

if [[ ! $1 ]]; then 
    echo "missing argument, please check !" 
    exit 1 # A non zero exit status implies an error in Linux 
fi 

然而,一個更合適的方法做同樣是使用[ param expansion ]

if [ ${1:-no_file_entered} = "no_file_entered" ]]; then 
    echo "missing argument, please check !" 
    exit 1 # A non zero exit status implies an error in Linux 
fi