0

いくつかのファイルを引数として使用して、起動したい bash スクリプトがあります。次に、そのリストのn 番目ごとのファイルを配列に追加する必要があります。

ループを使おうと思ったのforですが、一度に二つしかできないようです。もちろん、結果のコードはできるだけシンプルで小さくしたいと思っていますが、唯一の前提条件は、システムに付属のツールを使用して bash で実行する必要があるということです。

4

3 に答える 3

2

間接変数参照を使用して、引数を数値で参照できます。

selectedargs=()
n=4
for ((i=1; i<$#; i+=n)); do
    selectedargs+=("${!i}")
done
于 2013-02-05T06:42:29.063 に答える
0

ファイル名は引数であるためshift、不要な引数を破棄するために使用できます。

#!/bin/bash

files=()
n=8
while (( $# > 0 )); done
   files+=( $1 )
   shift $n || shift $#
done

その引数が残りの引数の数よりも大きい場合は何もしないため、追加shiftが必要です。shift

于 2013-02-04T22:59:09.630 に答える
0

forループはかなり適切だと思います。ここで、 forn=9では、0 から 99 までの数字を含む配列を作成し、次に for ループを使用して、元の配列の 9 桁ごとに含む配列を作成します。

x=( {0..99} )
y=()
n=9
for ((i=0; i<${#x[@]}; i=i+n)); do
    y+=( "${x[i]}" )
done
于 2013-02-04T22:41:23.570 に答える