我正在尝试验证用户输入的输入是数字类型还是非数字类型。如果是数字类型,那么它将执行必要的操作,否则它将生成我设计的错误消息(不是生成的标准错误)
我一直在使用的步骤是:
1> 对输入进行数学运算。
echo -n "请输入数字:";读一个
现在如果输入 a
是数字类型,那么操作成功,否则将生成标准错误。
输入一个数字:ww
expr:非数字参数
我用来重定向标准错误的代码是:
tmp=`expr $a / 1` >&2
我还尝试使用以下代码将其重定向到空文件:
tmp=`expr $a / 1` > /dev/null
但是仍然显示错误。
最佳答案
您必须在内部表达式中重定向 stderr:
tmp=`expr $a / 1 2>/dev/null`
关于Bash 标准错误重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986330/