加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在shell脚本中禁止输出到屏幕

发布时间:2020-12-15 21:30:24 所属栏目:安全 来源:网络整理
导读:你好 我写了一个小脚本: #!/usr/bin/kshfor i in *.DATdoawk 'BEGIN{OFS=FS=","}$3~/^353/{$3="353861958962"}{print}' $i $i_changedawk '$3~/^353/' $i_changed $i_353rm -rf $i_changeddoneexit 我测试了它和它的wrking罚款. 但是它将输出提供给屏幕我不
你好
我写了一个小脚本:

#!/usr/bin/ksh

for i in *.DAT
do
awk 'BEGIN{OFS=FS=","}$3~/^353/{$3="353861958962"}{print}' $i >> $i_changed
awk '$3~/^353/' $i_changed >> $i_353
rm -rf $i_changed
done

exit

我测试了它和它的wrking罚款.
但是它将输出提供给屏幕我不需要输出到屏幕.
我只需要制作$i_353的最终文件

这怎么可能?

解决方法

将脚本的主体包装在大括号中并重定向到/ dev / null:

#!/usr/bin/ksh

{
for i in *.DAT
do
    awk 'BEGIN{OFS=FS=","}$3~/^353/{$3="353861958962"}{print}' $i >> $i_changed
    awk '$3~/^353/' $i_changed >> $i_353
    rm -rf $i_changed
done
} >/dev/null 2>&1

这也会将错误发送到比特桶.这可能不是一个好主意;如果您不想这样,请删除2>& 1重定向.

另外:注意 – 您可能需要使用${i} _changed和${i} _353.这就是为什么输出不会转到文件…你的变量${i_changed}和${i_353}没有初始化,因此重定向不命名文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读