如何在bash中获得第n个位置参数?

hcs*_*s42 69 bash arguments command-line-arguments

如何n在Bash中获得位置参数,哪里n是变量?

Pau*_*ce. 99

使用Bash的间接功能:

#!/bin/bash
n=3
echo ${!n}
Run Code Online (Sandbox Code Playgroud)

运行该文件:

$ ./ind apple banana cantaloupe dates
Run Code Online (Sandbox Code Playgroud)

生产:

cantaloupe
Run Code Online (Sandbox Code Playgroud)

编辑:

你也可以做阵列切片:

echo ${@:$n:1}
Run Code Online (Sandbox Code Playgroud)

但不是数组下标:

echo ${@[n]}  #  WON'T WORK
Run Code Online (Sandbox Code Playgroud)

  • 任何人都可以解释为什么$ {@ [n]}不起作用? (9认同)

Joh*_*iss 12

如果N保存在变量中,请使用

eval echo \${$N}
Run Code Online (Sandbox Code Playgroud)

如果它是一个持续使用

echo ${12}
Run Code Online (Sandbox Code Playgroud)

以来

echo $12
Run Code Online (Sandbox Code Playgroud)

并不代表相同!

  • 嗨@HelloGoodbye,`$ 12`表示'$ 1`和字符'2`.`$ {12}`表示第12个参数. (3认同)
  • `${12}` 和 `$12` 有什么区别? (2认同)