Bash
腳本多個命令
我有一個從 Cron 執行的 PHP 腳本。我想將其輸出保存到文件,但也想將 shell 輸出保存到不同的文件。理想情況下,我想把它放在一行中。因此,我嘗試了以下方法:
script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt" && /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
但它只執行第一個命令(之前
&&
)。同樣,如果我使用;
而不是&&
.當我將它作為兩個單獨的命令執行時,它工作得很好:
root:~# script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt" root:~# /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
如何將這兩個命令合併到一個命令行/行中?
另外,當通過 Cron 執行時,我是否需要
exit
在上述程式碼之後執行命令才能使腳本正確保存到文件?
根據 terdon 的要求,我將此評論作為答案發布,以便可以將問題標記為“已回答”
不要依賴
script
日誌記錄,尤其是如果這最終將是一項 cron 作業,請考慮將輸出和錯誤消息發送到 php 程式碼中的一個或多個指定文件。當你在 cron 中執行它時,它會創建一個會話日誌,除非你將它轉移到類似>/dev/null 2>&1
指令的東西上。因此,作為調試工具,您可以檢查該 cron 日誌