組み込みの環境変数を使用して、ファイルを .junk ディレクトリに移動するコードを作成しようとしています。私の目標は、ユーザーがshjunk filename1 filename2 filename3...を入力するだけで、スクリプトが$ 1、$ 2、$ 3 ...を使用してファイルを移動することです。残念ながら、カウンターループが正しく機能しません。
#!/bin/s
if [ $# = 0 ]
then echo "Usage: junk -l | -p | { filename }*"
elif [ $1 = "-l" ] && [ $HOME/.junk ]
then ls $HOME/.junk
elif [ $1 = "-p" ] && [ $HOME/.junk ]
then rm -r $HOME/.junk
elif [ $1 = "$@" ] && [ $HOME/.junk ]
then echo $#
i=1
s="$"
while [ $i -le $# ]
do
echo $s$i
mv $s$i .junk/$i
i=$(($i+1))
done
fi
ベストアンサー1
いくつかの即時の質問:
getopts
パラメータ処理に使用または使用しない理由があります。- スクリプトに複数のパラメータが指定されている場合、
"$@"
3番目のパラメータはelif
スクリプトを吹き飛ばします。 for f in "$@"
ループの代わりにループを使用してくださいwhile
。
なぜ?
sh junk --help
...またはもっと興味深いオプションを入力するとmv
どうなりますか?- 量子電気力学
- より簡単=>より良い