我尝试将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中没有任何反应,没有回显命令
如何在xterm中打印并写入日志文件echo命令,
或仅在日志文件不存在时在xterm中打印?
请帮助:)
答案 0 :(得分:3)
您的代码无法正常工作的原因是,当文件不存在时,它不会消耗标准输入。您可以通过在cat
分支中添加else
调用来解决此问题:
saveLog() {
if [[ -e "./directory_with_logs/my_script.log" ]] ; then
tee -a ./directory_with_logs/my_script.log
else
cat
fi
}
答案 1 :(得分:-3)
你不需要tee来附加一个>>的文件
试试这个:
echo "XXXXX" >> ./directory_with_logs/my_script.log