2013年9月26日

Shell Script 小筆記 : 關於 "_"

今天在寫 shell script 時,發現一個令我不解的問題

前面我先定義了兩個變數

date=$(date +%m%d_%H%M%S)
AAA=`tail -n1 abc.log`


後面想要用 echo 輸出到檔案裡面

echo "$date_$AAA" >> abc.log

這樣就只會輸出 $AAA 的內容

但是只要改掉 "_" 就可以了

echo "$date-$AAA" >> abc.log

問題在第一個 echo 裡面的 "_" 為何會有問題?是保留字還是?

感謝 PTT 網友的解答
推 CP64:把兩個變數名稱用大括號括起來 ${date}_${AAA}
推 CP64:因為底線本身也可以被包含在變數名稱內所以你實際輸出的不是
→ CP64:$date 而是 $date_


0 意見:

張貼留言