shell script 變數問題 - Linux

Heather avatar
By Heather
at 2014-01-25T02:03

Table of Contents

※ 引述《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

--
Tags: Linux

All Comments

Rae avatar
By Rae
at 2014-01-25T07:22
感謝提醒,因為寫的少、所以有時候思路轉不過來
陣列就更不熟了Orz

新增模組

Steve avatar
By Steve
at 2014-01-24T08:47
※ 引述《gn00618777 (非常念舊)》之銘言: : 抱歉想問個問題 : 我想自己新增模組到核心內,首先我先到目標目錄新增一個A.c檔 : 之後在此目錄的 Kconfig 新增 : config TEST : tristate and#34;C testand#34; : 然後到此目錄的 makefi ...

安裝軟體的路徑錯誤

Xanthe avatar
By Xanthe
at 2014-01-23T23:02
※ 引述《FedoraHanT (呢帽漢)》之銘言: : 剛剛製作了一個 Fedora 適用的套件 : https://build.opensuse.org/package/show/home:bluebat/talys : 基本上不需要 talys.setup 而只需 : cd source : sed - ...

shell script 變數問題

Ivy avatar
By Ivy
at 2014-01-23T15:19
※ 引述《zhucc (阿朱哥)》之銘言: : 你好、想再請教一下 : 今天我輸出的時候也想利用迴圈的方式輸出 : 所以我寫成下面這樣 : file=/root/zh/pp/file.log : for q in 1 2 3; do : eval TMP${q}=and#34;/root/zh/pp/p ...

shell script 變數問題

Sarah avatar
By Sarah
at 2014-01-23T14:56
你好、想再請教一下 今天我輸出的時候也想利用迴圈的方式輸出 所以我寫成下面這樣 file=/root/zh/pp/file.log for q in 1 2 3; do eval TMP${q}=and#34;/root/zh/pp/pg${q}.tmpand#34; done for j in 1 ...

安裝軟體的路徑錯誤

Susan avatar
By Susan
at 2014-01-23T13:48
剛剛製作了一個 Fedora 適用的套件 https://build.opensuse.org/package/show/home:bluebat/talys 基本上不需要 talys.setup 而只需 cd source sed -i and#39;s|/home/finux01b/akoning/ta ...