私は、trash.sh と呼ばれる次の bash スクリプトを持っています。私のスクリプトでは、ユーザーに 1 つのパラメーター (単純にファイル名) を要求します。そして、ファイルをユーザーのホーム ディレクトリにある Trash フォルダーに移動します。ディレクトリが存在しない場合は、ディレクトリを作成し、そこにファイルを移動します。一方、ファイルが存在しない場合は、ユーザーに通知します。
#!/bin/bash
FILE=$1
FOLDER="$HOME/Trash"
ARGS=1
if [ $# -ne $ARGS ]
then
echo "Error: You are missing an argument!"
echo "Usage: ./trash.sh <file_name>"
else
if [ -s $FILE ]
then
if [ -d $FOLDER ]
then
mv -v $FILE $FOLDER
else
mkdir $FOLDER
mv -v $FILE $FOLDER
fi
else
echo "The file you have entered does not exist!"
fi
fi
今、私は次の方法でスクリプトを拡張したいと思っていますが、bash スクリプトの経験があまりないため、方法がわかりません。まず第一に、ユーザーが複数のパラメーター、つまり複数のファイル名を入力できるようにし、すべてのファイルを Trash フォルダーに移動させたいと考えています。1 つ以上のファイルが存在しない場合は、存在しないファイルがユーザーに通知されます。簡単に言えば、スクリプトがユーザーが望むだけ多くのパラメーターを受け取るようにしたいのです。
たとえば、ユーザーが次のようにスクリプトを呼び出した場合:
./trash.sh file1 file2 file3
そして、file2が存在しないとしましょう。出力が必要です。
file1 -> /home/user/Trash/file1
file3 -> /home/user/Trash/file3
file2 doesn't exist!
最後に、次のようなパラメーターを受け入れることも必要です。
./trash *.txt
簡単に言うと、.txt 拡張子で終わるすべてのファイルを移動します。誰かがこれらのことを達成したり、スクリプトを拡張したりするのを手伝ってくれたらうれしいです。