1

変数を使用して位置パラメータにアクセスしようとしています。

つまり、変数を 1 と定義すると、1 番目の位置パラメーターにアクセスし、2 と定義すると 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)

これはできますか?

4

1 に答える 1

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

編集

実際にエコーの外部にアクセスする必要がある場合、これをどのように使用すればよいですか。たとえば、「if [ -f \$${var} ]」

あなたが指摘した方法が最善の方法です:

var=2 
eval temp="\$${var}"
if [ -f "$temp" ] # Do double quote
then
#do something
fi
于 2016-08-01T06:54:18.740 に答える