这是我正在做的一件简单的事情
echo "please enter a command"
read x
$x
checkexitstatus()
{...}
checkexit
状态是在其他地方创建的ifloop,仅用于检查退出状态
我想知道的是 有什么办法,当我运行$ x,它不会显示在屏幕上 我想知道是否可以将输出重定向到文件
答案 0 :(得分:3)
不,这是不可能的。
$x &> /dev/null
答案 1 :(得分:3)
您可以使用Bash重定向:
command 1> /.../path_to_file
=>将stdout重定向到path_to_file。 command > /.../path_to_file
是上一个命令的快捷方式。
command 2> /.../path_to_file
=>将stderr重定向到path_to_file 要同时对同一输出执行两项操作:command >/.../path_to_file 2>&1
。
2>&1
表示将2
(stderr)重定向到1
(stdout成为path_to_file)。
如果您不想检索命令的输出,可以将path_to_file
替换为/dev/null
。
否则,您还可以存储命令的输出:
$ var=$(command) # Recent shell like Bash or KSH
$ var=`command` # POSIX compliant
在此示例中,command
的输出将存储在$var
。
答案 2 :(得分:2)
或者,如果您只是想按照标题所示关闭echo
(在正文中它似乎不是这样),您可能(可能会破坏代码)为{{创建别名1}}
echo
现在alias echo=':'
是echo
的别名。您可以noop
unalias
。