作者rickieyang (Rickie Yang)
看板Linux
標題Re: [問題] shell script 變數問題
時間Sat Jan 25 02:03:44 2014
※ 引述《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"
: done
: 但是實際執行時又出現問題了
: + for j in 1 2 3
: + eval 'cat 1 >> /root/zh/pp/file.log'
: ++ cat 1
: cat: 1: No such file or directory
: 請問又該如何修正?
其實 script 跟程式一樣,能簡單就不要複雜...
不知道你確切的需求是什麼,不過如果就你的例子,其實可以直接 cat
或用 bash 的 array 來作. 可讀性可能會高一些.
file=/root/zh/pp/file.log
for q in 1 2 3
do
cat /root/zh/pp/pg${q}.tmp >> ${file}
done
或是 bash 的 array:
file=/root/zh/pp/file.log
for q in 1 2 3; do
TMP[${q}]="/root/zh/pp/pg${q}.tmp"
done
for j in 1 2 3; do
cat ${TMP[${j}]} >> $file"
done
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.222.17.107
推 zhucc:感謝提醒,因為寫的少、所以有時候思路轉不過來 01/25 11:17
→ zhucc:陣列就更不熟了Orz 01/25 11:17