Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
for循环中的bash命令行替换_Bash_Loops_Command Line - Fatal编程技术网

for循环中的bash命令行替换

for循环中的bash命令行替换,bash,loops,command-line,Bash,Loops,Command Line,我有一个测试脚本test.sh,我试图将命令行参数打印到脚本中,但以下操作无法按预期工作 `#!/bin/bash for((i=1;i<"$#";i++)) do printf "Position %s of argumentArray has %s \n", $i $(($i)) done` 而不是 Position 1 of argumentArray has first Position 1 of argumentArray has second

我有一个测试脚本test.sh,我试图将命令行参数打印到脚本中,但以下操作无法按预期工作

`#!/bin/bash
 for((i=1;i<"$#";i++)) do
        printf "Position %s of argumentArray has  %s \n", $i  $(($i))
  done`
而不是

Position 1 of argumentArray has  first 
Position 1 of argumentArray has  second
Position 1 of argumentArray has  third
我也面临同样的问题

for((i=1;i<="$#";i++)) 
  do
      case "$($i)" in
       .......

for((i=1;i可以直接访问命令行参数,但如果您希望按位置访问它们,可以执行以下操作:

arguments=($@)
for ((i = 0; i < ${#arguments[@]}; i++)); do
    echo "arguments[$i] = ${arguments[$i]}"
done
附录

有关Bash阵列的信息:


可以直接访问命令行参数,但如果您希望按位置访问命令行参数,可以执行以下操作:

arguments=($@)
for ((i = 0; i < ${#arguments[@]}; i++)); do
    echo "arguments[$i] = ${arguments[$i]}"
done
附录

有关Bash阵列的信息:

您可以很容易地使用:

for((i=1;i<=$#;i++)) do
    printf "Position %s of argumentArray has  %s \n" $i  "${!i}"
done
for((i=1;i您可以非常轻松地使用:

for((i=1;i<=$#;i++)) do
    printf "Position %s of argumentArray has  %s \n" $i  "${!i}"
done

for((i=1;我认为它有效。我完全忘记了Aray,我继续做。`for((i=1;我认为它有效。我完全忘记了Aray,我继续做。`for((i=1;我)
for((i=1;i<=$#;i++)) do
    printf "Position %s of argumentArray has  %s \n" $i  "${!i}"
done