如何替换bash显示的错误消息

时间:2015-07-07 11:07:31

标签: bash

我正在尝试执行脚本并将其输出存储在变量中,而不是在stdout上显示它。我的问题是我使用的脚本我无法更改它使用stty所以无论我尝试什么我总是得到错误:

stty: standard input: Inappropriate ioctl for device

我的代码如下:

        req="script $ip"
        response=$($req)
        echo $response

我在最后回复stdout的请求,因为我希望用户看到它,但我也需要在我的脚本中处理它的一部分。

脚本正在按预期工作,只是让我感到厌烦的是,错误消息始终显示给用户。

我尝试过添加:

response=$($req "&>/dev/null)

response=$($req) &>/dev/null

但没有运气,错误信息仍会显示。

我基本上只想将其隐藏起来。

1 个答案:

答案 0 :(得分:4)

eval可以为您提供帮助,但它是insecure

使用以下方法(eval替代方案):

cmd=(script "$ip")
response=$("${cmd[@]}" 2>/dev/null)
echo "$cmd"