bash打印给出脚本参数

时间:2016-05-15 06:57:34

标签: bash

我需要打印用户输入的参数号。无论我做什么,我总是得到一个空行

echo "Give argument number"
read number
allV=$@
echo ${allV[$number]}

这几行有什么问题?即使我用一些参数启动脚本,我只需手动编写“

echo ${allV[1]}

我得到的只是空行。

2 个答案:

答案 0 :(得分:2)

Bash允许您使用间接引用,该引用也适用于编号参数:

echo "${!number}"

它还允许您对参数列表进行切片:

echo "${@:$number:1}"

或者您可以将参数复制到数组中:

argv=("$@")
echo "${argv[number]}"

在所有情况下,如果参数包含空格和/或glob字符,则几乎肯定需要引号。

答案 1 :(得分:1)

要将$@作为数组处理,只需将其更改为("$@")

echo "Give argument number"
read number
allV=("$@")
echo ${allV[$number-1]}