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/2/linux/22.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 将数组的元素增加1(1到1000)_Arrays_Linux_Bash_Shell_Sh - Fatal编程技术网

Arrays 将数组的元素增加1(1到1000)

Arrays 将数组的元素增加1(1到1000),arrays,linux,bash,shell,sh,Arrays,Linux,Bash,Shell,Sh,说到shell脚本,我还是个新手。长话短说,我正在尝试为每次迭代将数组的值增加1。这是我的密码 cmd=(1 2 3 4 5 6 7 8 ................) // How can I pass numbers 1 to 1000 with out having to type manually. ${cmd[@]} for (( i = 0 ; i < ${#cmd[@]} ; i++ )) do echo ${cmd[$i]}" done cmd=(1 2 3

说到shell脚本,我还是个新手。长话短说,我正在尝试为每次迭代将数组的值增加1。这是我的密码

cmd=(1 2 3 4 5 6 7 8 ................)  // How can I pass numbers 1 to 1000 with out having to type manually.
${cmd[@]}

for (( i = 0 ; i < ${#cmd[@]} ; i++ )) do
echo ${cmd[$i]}"

done  
cmd=(1 2 3 4 5 6 7 8…………)//我怎样才能在不必手动键入的情况下将数字1传递到1000。
${cmd[@]}
对于((i=0;i<${cmd[@]};i++)do
echo${cmd[$i]}”
完成
一种方法是cmd=(),然后在循环中添加一行“let cmd[i]++”,但它对我不起作用。提前谢谢你,你可以说:

cmd=( $(seq 1000) )
以创建阵列。

请尝试以下命令


如果您正在运行bash,您可以利用它的特性

尝试:


您只是想将
cmd
数组初始化为数字1…1000?还是想初始化数组,然后再增加数组的元素?@robmayoff任何一种方法都可以。只要命令执行的值在每次迭代中都增加1。我就在试着按照别人的建议去做。(下面是建议)。但如果我们可以用其他方法来做,请分享。很高兴知道bash{1..1000}的计算结果是1 2 3 4 5 6到1000。较新的bash版本甚至支持增量,如{1..11..2}将计算为1 3 5 7 9 11。您可以简单地执行:
for((i=1;i@anubhava)我需要它在数组中。我将替换cmd=(1 2 3 4 5 6 7 8………..)使用cmd=($(seq 1000))看看会发生什么,感谢您的快速响应。与$(seq 1000)相比,$(seq 1000)将生成一个子shell,而{1…1000}是bash的本机代码,不会生成子shell。运行了一个小测试:使用大括号扩展比使用
seq
(然而,一次调用的速度是如此之快——在现代桌面上大约是0.005秒——这可能无关紧要).最后,一个作为外部可执行文件的quibble-
seq
,在子进程中运行,而不是在子shell中运行。@user3088572供参考,我还想跳过数组中的一些数字,并且可以通过执行cmd=({2..100}{300..553}{550..100})来实现这一点+1-不知道指定起始编号是可选的,默认为1。
cmd=( $(seq 1 1000) )
cmd=({1..1000})