Bash 标准错误重定向

deb*_*bal 2 bash standard-error

我试图验证用户输入的输入是数字类型还是非数字类型。如果是数字类型,那么它将执行必要的操作,否则它将生成我设计的错误消息(不是生成的标准错误)

我一直在使用的步骤是:

1> 对输入执行数学运算。
echo -n "Enter a number : "; read a

现在,如果输入a是数字类型,则操作成功,否则将生成标准错误。

Enter a number : ww

expr: non-numeric argument

我用来重定向标准错误的代码是:

tmp=`expr $a / 1` >&2
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下代码将其重定向到空文件:

tmp=`expr $a / 1` > /dev/null
Run Code Online (Sandbox Code Playgroud)

但错误仍在显示。

loe*_*tar 5

您必须在内部表达式中重定向 stderr:

tmp=`expr $a / 1 2>/dev/null`
Run Code Online (Sandbox Code Playgroud)