gpt4 book ai didi

linux - 需要将输出重定向到/dev/null....在命令行中工作正常但在 shell 中不工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:36 25 4
gpt4 key购买 nike

我需要在 bash 文件中编写一个执行命令并忽略输入。

例子

pvs --noheadings -o pv_name,vg_name,vg_size 2> /dev/null

上面的命令在命令行中运行良好,但是当我在 shell 中编写相同的命令时,它会给我一个错误

喜欢

Failed to read physical volume "2>"
Failed to read physical volume "/dev/null"

我猜它看起来像是整个命令的一部分。你能给我一些关于如何纠正它的建议吗?

提前致谢。

完整代码

#--------------------------------

main() {
pv_cmd='pvs'
nh='--noheadings'
sp=' '
op='-o'
vgn='vg_name'
pvn='pv_name'
pvz='pv_size'
cm=','
tonull=' 2 > /dev/null '
pipe='|'

#cmd=$pv_cmd$sp$nh$sp$op$sp$vgn$cm$pvn$cm$pvz$sp$pipe$tonull #line A
cmd='pvs --noheadings -o vg_name,pv_name,pv_size 2> /dev/null' #line B
echo -n "Cmd="
echo $cmd
$cmd

主要

#-------------------------------------------- ------

如果您查看 A 行和 B 行,两个版本都在那里,尽管一个被注释掉了......

最佳答案

您不能在引用的字符串中包含 2>/dev/null。引用删除发生在处理重定向后。你必须做

cmd='pvs --noheadings -o vg_name,pv_name,pv_size'
$cmd 2> /dev/null

重定向才能正常工作。

关于linux - 需要将输出重定向到/dev/null....在命令行中工作正常但在 shell 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11459100/

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