Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在数组中声明并在bash脚本中随机打印数组中的值_Arrays_Bash_Shell - Fatal编程技术网

Arrays 在数组中声明并在bash脚本中随机打印数组中的值

Arrays 在数组中声明并在bash脚本中随机打印数组中的值,arrays,bash,shell,Arrays,Bash,Shell,这是我的bash脚本代码 declare -a types=("m4.xlarge" "m5.12xlarge" "m5d.12xlarge" "m4.large" "m4.16xlarge" "t2.2xlarge" "c4.large" "c5.xlarge" "r4.2xlarge" "x1e.4xlarge" "h1.16xlarge" "i3.16xlarge" ); echo "array declared" for i in {1..100} do for (( i=1; i

这是我的bash脚本代码

declare -a types=("m4.xlarge" "m5.12xlarge" "m5d.12xlarge" "m4.large" "m4.16xlarge" "t2.2xlarge" "c4.large" "c5.xlarge" "r4.2xlarge" "x1e.4xlarge" "h1.16xlarge" "i3.16xlarge" );
echo "array declared"


for i in {1..100}
do

for (( i=1; i<${arraylength}+1; i++ ))   
 do

#index=$( jot -r 1  0 $((${#expressions[@]} - 1)) )
    randominstancetype=$[$RANDOM % ${#types[@]}];

    #randominstancetype=$( shuf -i0-1 -n1 $((${#types[@]} )) );
    #randominstancepvtiptype=$[$RANDOM % ${#pvtip[@]}];
        #randominstancepubiptype=$[$RANDOM % ${#pubip[@]}];
done
 done
declare-a types=(“m4.xlarge”“m5.12xlarge”“m5d.12xlarge”“m4.large”“m4.16xlarge”“t2.2xlarge”“c4.large”“c5.xlarge”“r4.2xlarge”“x1e.4xlarge”“h1.16xlarge”“i3.16xlarge”);
回显“已声明数组”
对于{1..100}中的i
做

for((i=1;i
$[…]
$(…)
的旧版本和弃用版本。因此,您所做的只是简单的算术扩展,它会扩展回随机索引

要使用生成的索引访问数组的元素,请使用:

echo "${types[$RANDOM%${#types[@]}]}"
请尝试以下代码段:

#!/bin/bash  
declare -a types=("m4.xlarge" "m5.12xlarge" "m5d.12xlarge" "m4.large" "m4.16xlarge" "t2.2xlarge" "c4.large" "c5.xlarge" "r4.2xlarge" "x1e.4xlarge" "h1.16xlarge" "i3.16xlarge" )
echo "array declared"

max_random=32767
type_count=${#types[@]}
factor=$(( max_random / type_count ))

for i in {1..1000}
do
    random_index=$(( $RANDOM / $factor ))
    random_instance_type=${types[$random_index]}
    echo $random_instance_type
done

这将打印数组
类型的随机顺序

for j in {1..100}; do
  for i in $(shuf -i 0-$((${#types[*]}-1))); do
     printf "%s " "${types[i]}";
  done;
  printf "\n";
done
如果您允许重复,那么您可以这样做

for j in {1..100}; do
  for i in $(shuf -n ${#types[*]} -r -i 0-$((${#types[*]}-1))); do
     printf "%s " "${types[i]}";
  done;
  printf "\n";
done
这些命令使用
shuf
及其选项:

  • -n
    -人头计数=计数
    最多输出
    计数
  • -i
    -输入范围=LO-HI
    将通过
    HI
    的每个数字
    LO
    视为一个输入行
  • -r
    -重复
    可以重复输出行
源代码
manshuf


从你之前提出的所有不被接受的问题来看……如果有一个令人满意的答案可以解决你的问题,那么看看:注意,这不仅会给回答者带来声誉,也会给你带来声誉。