$用法 - Linux

Table of Contents

如下圖,我想透過迴圈把T0~T6的值給echo出來。echo ${T${i}} 方法語法不對,在不使
用bash的前提下請問有其他辦法嗎?還是echo 兩個$ $的方法就是不可行的?
https://i.imgur.com/4fP9idu.jpg


--

All Comments

Irma avatarIrma2021-10-27
for vname in T{0..6};do echo "${!vname}";done
Rachel avatarRachel2021-10-29
忘了這是bash 哈哈
Ursula avatarUrsula2021-10-31
樓上 ! 的用途是?
Caitlin avatarCaitlin2021-11-02
樓上關鍵字: indirect expansion
Hedy avatarHedy2021-11-04
POSIX sh要用eval的方式 搭配while迴圈 比較艱難
Poppy avatarPoppy2021-11-06
https://tinyurl.com/wkncyze9 我找到的 應該可以改來用
Carolina Franco avatarCarolina Franco2021-11-08
eval echo \$T$n 這樣不知道能否
Frederica avatarFrederica2021-11-10
剛測試ok,配個 for n in {1..6} 就好
Regina avatarRegina2021-11-12
謝謝上面的所有回答,目前看起來s大的方法最簡單,之前
有試著加上eval 但是沒有加上\只印出i的值,請問\代表
的是什麼?再次感謝回答!
Thomas avatarThomas2021-11-14
eval 的可讀性很低,久了連自己都看不懂.
John avatarJohn2021-11-16
\$ 的 \ 是跳脫字元,讓它在第一次展開時被視為純文字,第
二次才做為變數標記符號(不過我不知道 eval 是否只會展開
兩次)。
https://stackoverflow.com/a/11065196 這裡有不錯的解釋
Margaret avatarMargaret2021-11-18
有提到如果是純變數可以用 ! 處理(不過是否是 bash only我
就不知道了),eval 則是更泛用的方式。
Dinah avatarDinah2021-11-20
最後還是提一下,eval == evil ,如果不是為了相容前人的程
式,建議還是用陣列處理。
Franklin avatarFranklin2021-11-22
bash 才有陣列,而且寫法很醜
Kama avatarKama2021-11-24
要漂亮的解法就是包進function,就能有多一次展開變數的機會
。不過各種東西的內外傳遞會麻煩一點