gpt4 book ai didi

bash,如何选择是否通过变量附加重定向(根据 $append 使用 > 或 >>)

转载 作者:行者123 更新时间:2023-12-05 01:18:06 26 4
gpt4 key购买 nike

我需要在脚本或函数中将输出定向到日志文件,并根据变量决定是追加还是覆盖

应该是这样的(这显然行不通..)

if [ "$append" = "true" ] ; then direction=">>" ; else direction=">" ; fi
echo $message "$direction" $targetFile

而不是使用带有“if”语句的 2 个分隔命令的简单答案

稍后编辑,这里有一个假定的重复问题:Conditional redirection appending / overwriting , 然而,我更喜欢 Ivan 在这里的回答,而不是其他帖子中的回答

最佳答案

解决方案1:以所需模式打开专用文件描述符

if [ "$append" = "true" ] ; then
exec 3>>"$targetFile"
else
exec 3>"$targetFile"
fi
# Output to targetFile using the pre configured mode
echo "$message" >&3

解决方案2:始终附加但有条件地删除覆盖文件内容:

if [ ! "$append" = "true" ] ; then
# Reset target file
> "$targetFile" # same effect as overwrite
fi
echo "$message" >> "$targetFile"

缩写形式:

[ "$append" = "true" ] || > "$targetFile"
echo "$message" >> "$targetFile"

关于bash,如何选择是否通过变量附加重定向(根据 $append 使用 > 或 >>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856872/

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