$ a ...という変数から、3番目のパラメータから9番目のパラメータまでのすべてのデータを保持する文字列など、n番目の特定のパラメータに残りのすべてのパラメータを含む変数を生成するにはどうすればよいですか?よろしくお願いします。
答え1
Bash / ksh / zshでは、同様のアプローチを使用して${@:3:7}
3番目から9番目の引数を別の単語として処理したり、最初の文字${*:3:7}
とIFS
連結線で連結したりできます。 (7、3から9まで7だから。)
だから:
$ set -- $(seq 11 21)
$ echo "${*:3:7}"
13 14 15 16 17 18 19
または
$ a="${*:3:7}"
ただし、これらの引数を他のコマンドの引数として渡すには、"${@:3:7}"
関連するコマンドラインで直接使用します。
somecmd "${@:3:7}"
標準シェルでこれを行う必要がある場合は使用できません。代わりに、最初の引数を削除してを使用する必要が${var:n:m}
あります。shift
"$@"
arg1=$1
arg2=$2
shift 2
somecmd "$@"