私にはこんなことをする能力があり、
array=(2 46 7 4 2 1 1 1 23 4 5)
store=(${array[*]:5:5})
echo ${store[@]} # print 1 1 1 23 4 5
これで、ユーザー配列から位置5の5つの要素を抽出するのではなく、次のものを抽出する必要があります。5のコマンドラインパラメータ以来。このようなことを試しましたが、出力は空です。
store=(${$[*]:5:5}) # <----------------- Something to be changed here?
echo ${store[@]} # EMPTY OUTPUT
どんな助けでも、場所でnパラメータを保存する方法月配列で続行しますか?
答え1
bash
(およびzsh
およびでksh93
一般的な形式は次のとおりです。パラメータ拡張または、Substring Expansion
次のようになります。
${parameter:offset:length}
省略すると、引数の終わりlength
まで移動します。offset
あなたの場合:
array=(2 46 7 4 2 1 1 1 23 4 5)
store=( "${array[@]:5}" )
printf '%s\n' "${store[@]}"
要素から6th
最後の要素まで生成されます。
そして$@
:
printf '%s\n' "${@:5}"
$5
位置引数の終わりまで生成されます。
split+glob
また、演算子がその要素に適用されないようにするには、配列変数を引用符で囲む必要があります。
Pass zsh
、他の構文を使用できます。
print -rl -- $argv[5,-1]