Re: [問題] 變數問題

看板LinuxDev作者 (skyl)時間15年前 (2011/01/23 02:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《ppsy (looking for)》之銘言: : 大家好,我利用下面的指令把一個檔案導入FILE裡 : 然後利用迴圈去算行數,迴圈中每行均能正常印出 : 但出了迴圈後變數卻被歸0,請問有人知道原因嗎? : 謝謝。 : FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq` : i=0 : echo "$FILE" | \ : while read CMD; do : i=`expr $i + 1` : echo $i : done : echo K$i 因為你的變數i並不是設定給你正在執行的shell script 例如: echo 'aaaa' | ABC="test" echo "ABC = $ABC" 輸出的ABC會是空的值 因為這種變數設定的方法 (跑shell command同時設定變數) 只會對那一行有效 (因為這種寫法的語義是只要讓該行的command吃到這個變數) 所以你的shell script應該要改寫成: FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq` i=0 for CMD in $FILE do i=`expr $i + 1` echo $i done echo K$i 或你也可以考慮用wc這個command來幫你做count: FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq` i=`echo $FILE | wc -w` echo K$i -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.226.207

01/31 00:49, , 1F
謝謝你。
01/31 00:49, 1F
文章代碼(AID): #1DEnly9e (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
1
1
文章代碼(AID): #1DEnly9e (LinuxDev)