Re: [問題] shell script 變數問題
※ 引述《zhucc (阿朱哥)》之銘言:
: 你好、想再請教一下
: 今天我輸出的時候也想利用迴圈的方式輸出
: 所以我寫成下面這樣
: file=/root/zh/pp/file.log
: for q in 1 2 3; do
: eval TMP${q}="/root/zh/pp/pg${q}.tmp"
: done
: for j in 1 2 3; do
: eval "cat $TMP$j >> $file"
eval "cat \$TMP$j >> $file"
: done
: 但是實際執行時又出現問題了
: + for j in 1 2 3
: + eval 'cat 1 >> /root/zh/pp/file.log'
這邊就看出最後被解析成 'cat 1 >> /root/zh/pp/file.log'
你"cat $TMP$j >> $file"進到SHELL後就會被直接解析成上面了
最主要問題是 $TMP << 這個應該要再eval裡面解析 而不是在SHELL
所以要改成 \$TMP 讓SHELL知道那$不是變數開頭 只是個$字元
: ++ cat 1
: cat: 1: No such file or directory
: 請問又該如何修正?
--
推
01/05 02:28,
01/05 02:28
推
01/05 02:30,
01/05 02:30
推
01/05 02:33,
01/05 02:33
→
01/05 02:34,
01/05 02:34
推
01/05 02:38,
01/05 02:38
推
01/05 03:19,
01/05 03:19
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.202.156
推
01/23 15:30, , 1F
01/23 15:30, 1F
→
01/23 15:30, , 2F
01/23 15:30, 2F
→
01/23 15:31, , 3F
01/23 15:31, 3F
→
01/25 00:52, , 4F
01/25 00:52, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):