不确定我的脚本在写入日志文件时的行为

不确定我的脚本在写入日志文件时的行为

我有一个非常简单的 ksh 脚本,在某些时候我想写入日志文件。我在两个地方使用以下命令......

print "Directory listing 1:\n" > ${LogFile}
ll >> ${LogFile}

(注:第二次使用该命令时打印目录清单2)

我的问题是,当我事后查看日志文件时,只有第二次执行这些命令才起作用!因此,没有“目录列表 1”和随附的“ll”输出。

我已经对脚本进行了测试和测试,以确保我的逻辑没有任何问题。我在每个命令之前添加了打印测试命令,这样我就知道它们会被执行。

我是否做错了什么或者我没有意识到?

答案1

>每当您使用(第一行)进行重定向时,${LogFile}都会将其截断为 0,然后写入。如果我理解正确的话,你会执行上述两次,第一个内容会被第二个内容覆盖。

你要做的就是:

> ${LogFile}    # This just truncates if there was anything there, writes nothing
 ...
echo "First round" >> ${LogFile}
ls -l >> ${LogFile}
 ...
echo -e "\nSecond round" >> ${LogFile}
ls -l >> ${LogFile}
 ...

相关内容