2017-07-02 14 views
1

私はシェルスクリプトを初めて使いました。このスクリプトを作成してパーミッションのあるファイルを作成し、ファイルが存在するかどうかを確認しています。すべてうまくいっていますが、引数を指定しなかった場合、引数がありませんが、私には得られないファイルやディレクトリのエラーは表示されません。助けてもらえますか?エラーチェック - シェルスクリプト

コード:

#!/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 
関連する問題