gpt4 book ai didi

bash - 如何将变量重定向到文件但不显示在屏幕上

转载 作者:行者123 更新时间:2023-11-29 09:22:58 25 4
gpt4 key购买 nike

我有这个小代码来做一些数据处理。

#!/bin/sh
export DIR=`pwd`
if [ -d "$DIR" ]
then
for f in "$DIR"/HistoryData*; do
if find "$f" -newermt 2017-03-13 ! -newermt 2017-03-14
then
echo "$f" >> file
fi
done
else
echo "$DIR does not exists"
fi
for f in $(cat < $DIR/file);do
awk '/CO2/ && !/VAV/{ print $0 }' "$f" >> HistoryData_CO2
done

echo "$f">> file 行中,我试图将变量写入文件,但它也在屏幕上显示了值。我怎样才能抑制控制台上的值并只写入文件

最佳答案

不是因为echo正在写入stdout,而是写入它的find的输出,只是压制它到/dev/null

if find "$f" -newermt 2017-03-13 ! -newermt 2017-03-14 > /dev/null

这样,您只需在 if-clause 中使用 find 的返回码,命令的输出不会打印到 stdout 但抑制到 NULL 设备。


但是通常依赖于find 的输出并不是使您的代码工作的好方法。

find "$DIR" -name 'HistoryData*' -newermt 2017-03-13 ! -newermt 2017-03-14  -print0 | 
while IFS= read -r -d $'\0' line; do
echo "$line" >> file
done

关于bash - 如何将变量重定向到文件但不显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604283/

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