通过变量打印到标准输出
print to stdout by a variable
以下作品:
[nir page]$ echo 1 2>&1 >&1
1
但是当我使用一个变量时它不会:
[nir page]$ out="&1"
[nir -page]$ echo $out
&1
[nir page]$ echo 1 2>$out >$out
[nir page]$
我做错了什么?
想法是将输出发送到 /dev/null
除非我要求输出到标准输出。
What am I doing wrong?
您假设部分语法可以存储在变量中。他们不能。 &
必须按字面输入,不能在变量中。
Idea is to send output to /dev/null except when I ask to stdout.
你为此使用文件描述符。
if when I dont ask; then
exec 1>/dev/null 2>&1
fi
echo 1
或使用linux/dev/*
个文件:
out=/dev/stdout # or /dev/null
echo 1 >"$out"
以下作品:
[nir page]$ echo 1 2>&1 >&1
1
但是当我使用一个变量时它不会:
[nir page]$ out="&1"
[nir -page]$ echo $out
&1
[nir page]$ echo 1 2>$out >$out
[nir page]$
我做错了什么?
想法是将输出发送到 /dev/null
除非我要求输出到标准输出。
What am I doing wrong?
您假设部分语法可以存储在变量中。他们不能。 &
必须按字面输入,不能在变量中。
Idea is to send output to /dev/null except when I ask to stdout.
你为此使用文件描述符。
if when I dont ask; then
exec 1>/dev/null 2>&1
fi
echo 1
或使用linux/dev/*
个文件:
out=/dev/stdout # or /dev/null
echo 1 >"$out"