PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Linux
[script] $用法
楼主:
dazip8959
(NCTU萧)
2021-10-25 22:42:39
如下图,我想透过循环把T0~T6的值给echo出来。echo ${T${i}} 方法语法不对,在不使
用bash的前提下请问有其他办法吗?还是echo 两个$ $的方法就是不可行的?
https://i.imgur.com/4fP9idu.jpg
作者:
creepy
(左招财 右纳福)
2021-10-25 23:10:00
for vname in T{0..6};do echo "${!vname}";done忘了这是bash 哈哈
作者:
rickieyang
(Rickie Yang)
2021-10-25 23:13:00
楼上 ! 的用途是?
作者:
kdjf
(我抓得到什么呢?)
2021-10-25 23:13:00
楼上关键字: indirect expansion
作者:
creepy
(左招财 右纳福)
2021-10-25 23:30:00
POSIX sh要用eval的方式 搭配while循环 比较艰难
https://tinyurl.com/wkncyze9
我找到的 应该可以改来用
作者:
sppmg
(sppmg)
2021-10-26 12:50:00
eval echo \$T$n 这样不知道能否刚测试ok,配个 for n in {1..6} 就好
楼主: dazip8959 (NCTU萧)
2021-10-26 15:33:00
谢谢上面的所有回答,目前看起来s大的方法最简单,之前有试着加上eval 但是没有加上\只印出i的值,请问\代表的是什么?再次感谢回答!
作者:
rickieyang
(Rickie Yang)
2021-10-26 23:44:00
eval 的可读性很低,久了连自己都看不懂.
作者:
sppmg
(sppmg)
2021-10-27 01:15:00
\$ 的 \ 是跳脱字符,让它在第一次展开时被视为纯文字,第二次才做为变量标记符号(不过我不知道 eval 是否只会展开两次)。
https://stackoverflow.com/a/11065196
这里有不错的解释有提到如果是纯变量可以用 ! 处理(不过是否是 bash only我就不知道了),eval 则是更泛用的方式。最后还是提一下,eval == evil ,如果不是为了相容前人的程式,建议还是用阵列处理。
作者:
Gold740716
(项为之强)
2021-10-27 09:37:00
bash 才有阵列,而且写法很丑
作者:
kdjf
(我抓得到什么呢?)
2021-10-27 12:19:00
要漂亮的解法就是包进function,就能有多一次展开变量的机会。不过各种东西的内外传递会麻烦一点
继续阅读
[问题] 新装的硬盘无法mount
chings22
[问题] 请问音乐都不会默认附有replaygain吗?
s9209122222
[问题] 如何让nvme安装nvme?
leojojo
[问题] USB 装置中的 exe file
gowrite
[问题] 大量的资料夹名称修改
toyakoyosu
[问题] 如果要GPU直通要怎么选主机板
bfbf510a
[问题] Ubuntu内建的Firefox
iddqd
[问题] manjaro软件包更新问题
a23718408
Re: [问题] bash 与 ./ 执行 script 差异
DarkKiller
[问题] bash 与 ./ 执行 script 差异
scitamehtam
Links
booklink
Contact Us: admin [ a t ] ucptt.com