我有一个带有已存储日志的变量。我想要的是读取包含日志的变量的每一行,并保留该行或删除某些过滤内容。
问题是我的代码在bash上有效,但在破折号上无效。
这是我的代码:
filtered_logs=""
while IFS= read -r line
do
...(store line to $filterered_logs if it comes throught filter )
done <<< "$logs"
logs="$filtered_logs"
此代码在bash中有效。但是' done <<<“ $ logs” '不能在破折号中工作(因为在ubuntu中默认为sh)。这是一项家庭作业,我需要,它可以在每种外壳上都能使用。
我尝试过的是:
filtered_logs=""
echo "$logs" |
while IFS= read -r line
do
...(store line to $filterered_logs if it comes throught filter )
done
logs="$filtered_logs"
但是,如果我从while周期到$ filtered_logs中存储一些内容,它将无法正常工作。而且我也无法在使用调试器循环时访问此文件。 (我认为整个while周期是全新的过程,因为我使用|。
我的问题是如何使它工作。谢谢
答案 0 :(得分:0)
在您的情况下,很容易使用干净的posix api:
logs=$(
printf "%s" "$logs" |
while IFS= read -r line
do
echo "store this to logs"
done
)