看板 Linux 關於我們 聯絡資訊
/ 過參數 但好像沒有關於這問題 比如以下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)
lantw44:v2= 後面不能有空白 12/14 17:17
jokester:$1不是這樣賦值 要用set -- ${!v2} ${!tmp} 12/14 17:42
jokester:另外每次call函數有自己的$@. 在裡面改也不影響全域 12/14 17:49
Propagator:因此swap之後的echo經由上面的方法不會有變化? 12/14 17:54
FedoraHanT:eval a="$b" b="$a" 12/14 22:43
FedoraHanT:eval a=\"$b\" b=\"$a\" #改一下 12/15 01:26