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

时间:2009-09-30 12:29:07

标签: bash arguments command-line-arguments

如何在Bash中获取n位置参数,其中n是可变的?

5 个答案:

答案 0 :(得分:94)

使用Bash的间接功能:

#!/bin/bash
n=3
echo ${!n}

运行该文件:

$ ./ind apple banana cantaloupe dates

产地:

cantaloupe

修改:

您也可以进行数组切片:

echo ${@:$n:1}

但不是数组下标:

echo ${@[n]}  #  WON'T WORK

答案 1 :(得分:10)

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

eval echo \${$N}

如果它是一直使用

echo ${12}

因为

echo $12

并不代表相同!

答案 2 :(得分:6)

$1 $2 ... $n

$0包含脚本的名称。

答案 3 :(得分:0)

正如您在Bash by Example中所看到的,您只需要使用自动变量$ 1,$ 2等。

$#用于获取参数的数量。

答案 4 :(得分:-1)

Handling positional parameters

Parameter expansion

$ 0:第一个位置参数

$ 1 ... $ 9:参数列表元素从1到9