Bashで最後のパラメータを除くすべてのパラメータをエコーする方法は?

Bashで最後のパラメータを除くすべてのパラメータをエコーする方法は?

私は以下を持っています

#!/bin/bash
function f1 ()
{
  echo "${@:1:-2}"
}
f1 1 2 3 4 5 6

1 2 3 4 5 man bash使用時に通知するにはエコーが必要です@。負の長さは使用できません。

私は計算()を使用しましたが"${@:1:$((${#@}-1))}"、これは私にとって本物ではないようです。

出力から最後のパラメータをどのように除外できますか?

ベストアンサー1

echo "${@:1:$#-1}"

長さ引数はすでに算術的文脈にあるので必要ではなく、$(( ... ))引数の数はによって提供されるため、onと同等のものを$#試す必要はありません。${#...[@]}$@

おすすめ記事