我当前的代码
tail -n 1 `ls -1t /path/*.txt 2>/dev/null | head -n 1` | awk '{print $1}'
如果目录中至少有一个*.txt
文件,则可以正常工作。
但是如果没有这样的文件,tail
则等待输入并且不会结束。
我如何需要修改我的代码以确保即使没有文件也能结束?
进行了快速测试,添加/dev/null
为“假”文件似乎可以解决问题。
tail -n 1 `ls -1t /path/*.txt 2>/dev/null | head -n 1` /dev/null | awk '{print $1}'
我认为您可以在读取时设置超时,如下所示:-
tail -f *.txt | read -t 30 line
或这个:-
if [ -f /path/*.txt ]; then
tail -n 1 `ls -1t /path/*.txt 2>/dev/null | head -n 1` | awk '{print $1}'
fi
一个简单的 if 语句来检查文件是否存在可能是最好的和最少混淆的方法。克什:
if [ -f /path/*.txt ]; then
tail -n 1 `ls -1t /path/*.txt 2>/dev/null | head -n 1` | awk '{print $1}'
fi
添加不同的bash语法
files=(f/path/*.txt)
if [ -f ${files[0]} ];
tail -n 1 `ls -1t /path/*.txt 2>/dev/null | head -n 1` | awk '{print $1}'
fi