forループから最後の引数/パラメータを除外

forループから最後の引数/パラメータを除外

最後の引数を除くすべての引数/引数を繰り返すシェルスクリプトを作成したいと思います。これが私が今まで持っているものです:

for i in $@
do
      echo "$i"
done

これは./script.shコマンドの後のすべての引数を表示するのに効果的ですが、最後の引数または私が選択した引数を無視する方法があります(たとえば、1つの場合は常に3番目の引数を無視)。 。明らかに、今は最後の引数/パラメータがより心配です。

私はスクリプトが初めてなので、この回答を含む他の投稿があればお詫び申し上げます。私は何かに新しいものがあることは、一般的にあなたが探しているものを適切に要求する方法がわからないことを意味することを発見しました。

どんな助けでも大変感謝します!

ベストアンサー1

パラメータを維持する必要がない場合

while (( $# > 1 ))
do
  echo "$1"
  shift
done

位置パラメータを変更せずに維持するには、数を維持するだけです。

SKIP=$#

let x=1

for i
do
  if (( x != SKIP ))
  then
    echo "$i"
  fi
  let x=x+1
done

おすすめ記事