我想要一个方式脚本来通过沉默标志在一个bash中,以便所有输出将被定向到/dev/null
,如果它存在如果不是,则返回到屏幕。Bash:重定向到屏幕或/ dev/null取决于国旗
我的剧本的MWE是:
#!/bin/bash
# Check if silent flag is on.
if [ $2 = "-s" ]; then
echo "Silent mode."
# Non-working line.
out_var = "to screen"
else
echo $1
# Non-working line.
out_var = "/dev/null"
fi
command1 > out_var
command2 > out_var
echo "End."
我打电话有两个变量的脚本,第一个是不相关的,而第二个($2
)是实际无声标志(-s
):
./myscript.sh first_variable -s
显然out_var
线不工作,但他们给我想要的东西的想法:以直销的方式的command1
和输出根据-s
是否存在与屏幕或/dev/null
。
我该怎么做?
大约有'='壳任务没有空格。假设你想要默认的标准输出位置,如果你用'/ dev/stdout'替换''screen''并在重定向中使用'$ out_var',我相信你的脚本应该可以正常工作。 – 2014-09-03 02:21:30
http://www.tldp.org/LDP/abs/html/io-redirection.html也是有趣的阅读。 – 2014-09-03 02:30:29
大提示@EtanReisner! – Gabriel 2014-09-03 11:43:02