8

次のように、配列を bash で自動的に入力したいと思います。

200 205 210 215 220 225 ... 4800

私はこのようにしてみました:

for i in $(seq 200 5 4800);do
    array[$i-200]=$i;
done

手伝ってくれませんか?

4

4 に答える 4

6

簡単にできます:

array=( $( seq 200 5 4800 ) )

これで、アレイの準備が整いました。

于 2013-06-28T08:15:52.753 に答える
5

の方法で実行します。

array=( {200..4800..5} )
于 2013-06-28T11:13:45.493 に答える
0

これらのアプローチではメモリ(または行の最大長)の問題が発生する可能性があるため、別の方法を次に示します。

# function that returns the value of the "array"
value () { # returns values of the virtual array for each index passed in parameter
   #you could add checks for non-integer, negative, etc
   while [ "$#" -gt 0 ]
   do
      #you could add checks for non-integer, negative, etc
      printf "$(( ($1 - 1) * 5 + 200 ))"
      shift
      [ "$#" -gt 0 ] && printf " "
   done 
}

次のように使用します。

the_prompt$ echo "5th value is : $( value 5 )"
5th value is :  220

the_prompt$ echo "6th and 9th values are : $( value 6 9 )"
6th and 9th values are :  225 240
于 2013-06-28T08:51:28.160 に答える