Bash tee-如果文件不存在';不要什么都不做
我尝试将echo命令保存到日志文件:Bash tee-如果文件不存在';不要什么都不做,bash,tee,Bash,Tee,我尝试将echo命令保存到日志文件: echo "XXXXX" | tee -a ./directory_with_logs/my_script.log 当文件my_script.log存在时,它运行良好 XXXXX (XXXXX也被写入my_script.log) 当我的_script.log不存在时,我得到了类似的东西 tee: ./directory_with_logs/my_script.log: No such file or directory XXXXX 我尝试了if-els
echo "XXXXX" | tee -a ./directory_with_logs/my_script.log
当文件my_script.log存在时,它运行良好
XXXXX
(XXXXX也被写入my_script.log)
当我的_script.log不存在时,我得到了类似的东西
tee: ./directory_with_logs/my_script.log: No such file or directory
XXXXX
我尝试了if-else过程来检查文件是否存在,然后写入日志
function saveLog(){
if [[ -e "./directory_with_logs/my_script.log" ]] ; then
tee -a ./directory_with_logs/my_script.log
fi ; }
echo "XXXXX" | saveLog
但当文件不存在时,它也会出错,xterm中并没有任何操作,并没有echo命令
如何在xterm中打印并写入日志文件echo命令
或者仅在日志文件不存在时在xterm中打印
请帮助:)您不需要附加>>所用的文件 试试这个:
echo "XXXXX" >> ./directory_with_logs/my_script.log
代码无法工作的原因是,当文件不存在时,它不会使用标准输入。您可以通过在
else
分支中添加cat
调用来修复它,如下所示:
saveLog() {
if [[ -e "./directory_with_logs/my_script.log" ]] ; then
tee -a ./directory_with_logs/my_script.log
else
cat
fi
}
问题是文件不存在还是目录不存在?因为它们不是一回事
tee
应该可以创建文件,但不会创建目录。就是这样。同样相关。另外,简单地执行echo“XXXXXX”>.\directory\u with_logs/my_script.log
???为什么要调用tee
?他可能正在使用tee-a
,因为他希望看到输出,以及附加到文件中。