通过变量访问位置参数

时间:2016-08-01 06:51:48

标签: bash shell positional-parameter

我正在尝试使用变量访问位置参数。

即。如果我将变量定义为1,我想访问第一个位置参数,如果我将其定义为2我想访问第二个位置参数。

例如: bash script.bash arg1 arg2 arg3

 var=2
 echo $var // will only echo no. 2
 ??? // insert your command to echo the 2nd positional parameter (arg2)

可以这样做吗?

1 个答案:

答案 0 :(得分:2)

待办事项

[[ "$var" -eq "1" ]] && echo "$1" #for positional parameter 1

依此类推,或者您可以像下面这样做:

#!/bin/sh
var=2
eval echo "\$${var}" # This will display the second positional parameter an so on

修改

  

如果我真的需要在echo之外访问,我该如何使用它。对于   例如“if [-f \ $$ {var}]”

你指出它的方法是最好的方法:

var=2 
eval temp="\$${var}"
if [ -f "$temp" ] # Do double quote
then
#do something
fi