在Bash脚本中,使用echo -e
命令加上换行符(\n
)可以实现输出换行。但是如果将其重定向到文件中时,可能会导致不换行的情况。
这是因为在终端中,\n
被解释为换行符,而当输出重定向到文件时,默认不会进行相同的解释。所以,在写入文件时,\n
只被视为普通的字符而不是换行符。
要解决这个问题,你可以考虑使用下面的方式:
common_check_result=$(sudo ansible -i $hosts_file ovs -m shell -a "sh common_check.sh")
printf "%s\n" "$common_check_result"
printf "%s\n" "$common_check_result" >> report_file
使用printf "%s\n"
来代替echo -e
可以确保在输出和写入文件时都能正确换行。
内容由零声教学AI助手提供,问题来源于学员提问