作者Propagator (传来传去)
看板Linux
标题[问题] 参数的assign方式?
时间Sat Dec 14 16:27:16 2013
/ 过参数 但好像没有关於这问题
比如以下script:
swap()
{
tmp=$1
v2= $2
$1=${!v2}
$2=${!tmp}
}
a=5
b=1
swap a b
echo "after swap:a=$a, b=$b"
会出现command not found的message
function好像真的还蛮不好用的 不像一般程式语言可以改argument
有没有大大有方式可以改argument的value而不经由修改全域变数的方式进行?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.240.128.132
※ 编辑: Propagator 来自: 111.240.128.132 (12/14 16:29)
1F:→ lantw44:v2= 後面不能有空白 12/14 17:17
2F:→ jokester:$1不是这样赋值 要用set -- ${!v2} ${!tmp} 12/14 17:42
3F:→ jokester:另外每次call函数有自己的$@. 在里面改也不影响全域 12/14 17:49
4F:→ Propagator:因此swap之後的echo经由上面的方法不会有变化? 12/14 17:54
5F:→ FedoraHanT:eval a="$b" b="$a" 12/14 22:43
6F:→ FedoraHanT:eval a=\"$b\" b=\"$a\" #改一下 12/15 01:26