0

我有一个脚本正在清点我的环境(不确定这是不是一个词)。

它出去并提取主机名操作系统、IP 和 ENV(开发、产品等)..然后将所有这些都吐到一个日志文件中

在我的脚本顶部,我检查了日志文件是否存在。

[[ -f $LOGFILE ]] || touch $LOGFILE && echo "ENV" "\t" "HOSTNAME" "\t" "OS" "\t" "IPADDRESS"

我想要它做的是如果存在,什么也不做......否则触摸并回显标题到文件。

目前,每次运行它都会回显标题行。

4

2 回答 2

0

如果后面的命令成功,像||这样&&在同一行上混合会导致问题。||建议将其扩展为完整的if声明。

if [[ ... ]]
then
   ...
else
   ...
fi
于 2012-09-26T01:34:54.953 回答
0

您提供的代码无论如何都不会将该行回显到您的日志文件中。

[[ -f $LOGFILE ]] || printf "ENV\tHOSTNAME\tOS\tIPADDRESS" > $LOGFILE

printf将“\t”解释为制表符。您不需要 touch 命令,因为文件将通过输出重定向创建并打开以供写入。

于 2012-09-26T01:56:55.817 回答