#! /bin/bash
while :
do
filenames=$(ls -rt *.log | tail -n 2)
echo $filenames
cat $filenames > jive_log.txt
sleep 0.1
done
我想從目錄中讀取最新的2個文件並使用bash加入它們。 但是,當前目錄中不存在具有擴展名.log的文件時,命令ls -rt *.log
將失敗,並顯示error "ls: cannot access *.log: No such file or directory"
。出現錯誤後,它看起來像while循環沒有執行。 之後我該怎麼做,即使一個命令失敗,無限循環也會繼續。bash繼續執行命令失敗
忽略錯誤使用'filenames = $(ls -rt * .log 2>/dev/null | tail -n 2)' – anubhava
1.)使用'find'而不是'ls'。 2.)僅當使用[errexit](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)選項set -e時,Bash纔會退出。 3.)使用'set -x'來調試你的腳本。 – ceving
我正在使用ls -rt,這樣我就可以得到2個最新的文件。我想find不支持這個。另外,嘗試設置+ E,但仍然沒有工作。 – Vinay