Shell
在寫入日誌文件時不確定我的腳本的行為
我有一個非常簡單的 ksh 腳本,並且在某些時候我想寫入日誌文件。我在兩個地方使用以下命令…
print "Directory listing 1:\n" > ${LogFile} ll >> ${LogFile}
(注:第二次使用此命令列印目錄清單2)
我的問題是,當我之後查看日誌文件時,只有第二次執行這些命令才有效!所以沒有“目錄清單 1”和伴隨的“ll”輸出。
我已經測試並測試了腳本以確保我的邏輯沒有錯。我在每個之前添加了列印測試命令,所以我知道它們會被執行。
是不是我做錯了什麼或者我沒有意識到?
每當您使用
>
(您的第一行)進行重定向時,都會將${LogFile}
其截斷為 0,然後再寫入。如果我理解正確,您執行上述操作兩次,第一個內容會被第二個內容覆蓋。您需要做的是:
> ${LogFile} # This just truncates if there was anything there, writes nothing ... echo "First round" >> ${LogFile} ls -l >> ${LogFile} ... echo -e "\nSecond round" >> ${LogFile} ls -l >> ${LogFile} ...