0

スクリプトの実行時に指定されたすべての引数をRecycleBinディレクトリに移動しようとしています。RecycleBinを使用して、ホームフォルダーのディレクトリになるように設定していますRecycleBin="$HOME/Recycled"

次に、すべての引数ファイル/ディレクトリをディレクトリに移動しますRecycleBin

これは私がこれまでに得たものです:

for  i in $* 
do
if [ $* -e ]
then
mv $i /path/to/RecycleBin/$*.`date +"%Y%m%d.%H%M%S"`
else
echo "The file does not exist"
fi
done

各ファイル.date +"%Y%m%d.%H%M%S"のバージョンを追加する場所(date command)

コマンドのすべての引数をfor i in $*チェックしています。

出力は次のようになります。/script.sh file1 file2 file3 - 3 つのファイルが移動される場所RecycleBin

私のループ関数が正しくないため、これは機能しません。

助けていただければ幸いです

ありがとうピート

4

1 に答える 1

2
[ $* -e ]

そのテストは次のようになります。

[ -e "$i" ]

また、コマンドではなく、mv使用する必要があります。個人的には、このステートメントを完全に削除したいと思います。ファイルが存在しない場合はエラー メッセージが表示されます。自分で行う必要はありません。$i$*ifmv

"$@"スペースを含むファイル名を処理するには、代わりに を使用し$*、次のように変数名を引用符で囲むのがベスト プラクティスです。

for file in "$@"; do 
    mv "$file" "/path/to/RecycleBin/$file.$(date +%Y%m%d.%H%M%S)"
done
于 2013-04-03T16:53:36.073 に答える