Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux中执行shell脚本时关闭echo_Linux_Bash_Shell_Echo - Fatal编程技术网

如何在Linux中执行shell脚本时关闭echo

如何在Linux中执行shell脚本时关闭echo,linux,bash,shell,echo,Linux,Bash,Shell,Echo,这是我正在做的一件简单的事情 echo "please enter a command" read x $x checkexitstatus() {...} checkexitstatus是在其他地方创建的ifloop,用于检查退出状态 我想知道的是 当我运行$x时,是否有任何方式使它不会显示在屏幕上 我想知道是否可以不将输出重定向到文件不,这是不可能的 $x &> /dev/null 您可以使用Bash重定向: 命令1>/…/path\u to\u文件=>将标准输

这是我正在做的一件简单的事情

 echo "please enter a command"
 read x
 $x
 checkexitstatus()
 {...}
checkexit
status是在其他地方创建的ifloop,用于检查退出状态

我想知道的是 当我运行$x时,是否有任何方式使它不会显示在屏幕上 我想知道是否可以不将输出重定向到文件

不,这是不可能的

$x &> /dev/null

您可以使用Bash重定向:

  • 命令1>/…/path\u to\u文件
    =>将标准输出重定向到path\u to\u文件
命令>/…/path_to_file
是上一个命令的快捷方式

  • 命令2>/…/path_to_文件
    =>将stderr重定向到path_to_文件
要同时对同一输出执行这两项操作:
command>/…/path\u To\u file 2>&1

2>&1
意味着将
2
(stderr)重定向到
1
(stdout成为路径到文件)。 如果不想检索命令的输出,可以用
/dev/null
替换
path\u to_file

否则,还可以存储命令的输出:

$ var=$(command) # Recent shell like Bash or KSH
$ var=`command` # POSIX compliant

在本例中,
命令
的输出将存储在
$var

中,或者如果您只是想按照标题所示关闭
echo
(在正文中似乎不是这样),您可以(它可能会破坏代码)为
echo
创建一个别名

alias echo=':'

现在,
echo
noop
的别名。您可以通过
unalias echo
unalias

$x>/dev/null
而不是
$x
。要使错误消息静音,
$x>/dev/null 2>&1
@AkyJ如果要将输出存储到文件中,则应使用除
/dev/null
以外的其他内容。非常感谢我按照建议使用了$x>/dev/null 2>&1devnull@AkyJ如果要将输出存储到文件,您应该使用除
/dev/null
之外的其他工具。感谢您提供的信息和解释2&>1的实际功能:)@AkyJ很高兴为您提供帮助。