2016-11-21 5 views
1

現在、ファイルを "ゴミ箱"に移動するスクリプトのコードを書いています。 それはそのままです - コードはうまく動作しますが、ファイルが正しく移動されたときにメッセージを生成し、特定のファイルが移動に失敗したとき/存在しないときにメッセージを生成します。Shellscript - mvを使用しているときに特定の引数にエラーを表示します。

私のコードは入力用に複数のファイル名を受け入れます。

# del test1.txt *.html testing.doc 
# Successfully moved to Dustbin 

ただし、これらのうちの1つだけが存在しない場合は、エラーメッセージが表示されます。 これを行うにはどうしますか?上記の例のように引数を受け入れることはできますか?次のように

私のコードは次のとおりです。

#!/bin/sh 

mv -u "[email protected]" /root/Dustbin 2>/dev/null 

# END OF SCRIPT 

おそらく明白な疑問である何のため申し訳ありません!私は完全にシェルスクリプトに新しいです!

感謝

答えて

1

あなたは引数を反復し、それぞれを移動しようとしなければならない:あなたはin "[email protected]"

for path; do 
    if mv -u "$path" /root/Dustbin 2>/dev/null; then 
     echo "Success" 
    else 
     printf 'Failed to move %s\n' "$path" 
    fi 
done 

などを省略できる引数を反復処理の省略形として

for path in "[email protected]"; do 
    if mv -u "$path" /root/Dustbin 2>/dev/null; then 
     echo "Success" 
    else 
     printf 'Failed to move %s\n' "$path" 
    fi 
done 

+0

ありがとう! 私はそれぞれの議論を踏まなければならないことは知っていましたが、それを行う方法を手がかりにしていませんでした。私はbashでprintfを使うことができたことさえ知りませんでした - これで全部の初心者! :) – William

関連する問題