看板 LinuxDev 關於我們 聯絡資訊
※ 引述《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
ppsy:謝謝你。 01/31 00:49