環境変数を使用したカウンターループ

環境変数を使用したカウンターループ

組み込みの環境変数を使用して、ファイルを .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

いくつかの即時の質問:

  1. getoptsパラメータ処理に使用または使用しない理由があります。
  2. スクリプトに複数のパラメータが指定されている場合、"$@"3番目のパラメータはelifスクリプトを吹き飛ばします。
  3. for f in "$@"ループの代わりにループを使用してくださいwhile

なぜ?

  1. sh junk --help...またはもっと興味深いオプションを入力するとmvどうなりますか?
  2. 量子電気力学
  3. より簡単=>より良い

おすすめ記事