当前位置: 技术问答>linux和unix
bash脚本参数引用的问题
来源: 互联网 发布时间:2016-12-25
本文导语: 其实我的需求很简单。。。就好象能写出来下面的脚本就好 test.sh a b c d e 脚本内容 i=2 echo $i #俺就想这个地方输出 c 而不是 3 。。。。 我用了 $$i 这肯定不对 我也用过 j='$'"$i" echo "j" 结果给我输出...
其实我的需求很简单。。。就好象能写出来下面的脚本就好
test.sh a b c d e
脚本内容
i=2
echo $i #俺就想这个地方输出 c 而不是 3 。。。。
我用了 $$i 这肯定不对
我也用过
j='$'"$i"
echo "j"
结果给我输出了 $3
我无语了都。。。
test.sh a b c d e
脚本内容
i=2
echo $i #俺就想这个地方输出 c 而不是 3 。。。。
我用了 $$i 这肯定不对
我也用过
j='$'"$i"
echo "j"
结果给我输出了 $3
我无语了都。。。
|
不知道你是不是想实现变量的变量
sandbox$ cat test.sh
#!/bin/sh
i=3
eval echo $$i
sandbox$ ./test.sh a b c d e
c
|
如果i只能等于2却要输出第3个参数
可以这样
eval echo $$((i+1))
或者
shift
eval echo $$i
可以这样
eval echo $$((i+1))
或者
shift
eval echo $$i
|
$3就是第三个参数
如果你的test.sh中有这样的一行:
echo $3
并且你是这样调用它的:
test.sh a b c d e
那么就能看到c了
如果你的test.sh中有这样的一行:
echo $3
并且你是这样调用它的:
test.sh a b c d e
那么就能看到c了
|
楼上正解,eval把字符串变成命令
|
$$表示的是你当前使用bash的PID 所以$$i就不行了 其实可以直接加数字就行了 想要显示c 就用$3 就行了,不用太麻烦了
|
观注在shell中:变量再变成变量时的引用引用案例
|
我都无语了.
|
我都无语了.
|
我都无语了