gpt4 book ai didi

bash - tee - 如果文件不存在什么都不做

转载 作者:行者123 更新时间:2023-12-05 08:09:51 25 4
gpt4 key购买 nike

我尝试将 echo 命令保存到日志文件:

echo "XXXXX" | tee -a ./directory_with_logs/my_script.log

当文件 my_script.log 存在时效果很好

XXXXX

(XXXXX 也写入了 my_script.log)

当 my_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 中打印?

请帮忙:)

最佳答案

您的代码不起作用的原因是,当文件不存在时,它不会使用标准输入。您可以通过在 else 分支中添加 cat 调用来修复它,如下所示:

saveLog() { 
if [[ -e "./directory_with_logs/my_script.log" ]] ; then
tee -a ./directory_with_logs/my_script.log
else
cat
fi
}

关于bash - tee - 如果文件不存在什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com