[問題] 參數的assign方式?

看板Linux作者 (傳來傳去)時間12年前 (2013/12/14 16:27), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
/ 過參數 但好像沒有關於這問題 比如以下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)

12/14 17:17, , 1F
v2= 後面不能有空白
12/14 17:17, 1F

12/14 17:42, , 2F
$1不是這樣賦值 要用set -- ${!v2} ${!tmp}
12/14 17:42, 2F

12/14 17:49, , 3F
另外每次call函數有自己的$@. 在裡面改也不影響全域
12/14 17:49, 3F

12/14 17:54, , 4F
因此swap之後的echo經由上面的方法不會有變化?
12/14 17:54, 4F

12/14 22:43, , 5F
eval a="$b" b="$a"
12/14 22:43, 5F

12/15 01:26, , 6F
eval a=\"$b\" b=\"$a\" #改一下
12/15 01:26, 6F
文章代碼(AID): #1Ih1PcKV (Linux)