我正在尝试执行脚本并将其输出存储在变量中,而不是在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
但没有运气,错误信息仍会显示。
我基本上只想将其隐藏起来。
答案 0 :(得分:4)
eval
可以为您提供帮助,但它是insecure。
使用以下方法(eval
替代方案):
cmd=(script "$ip")
response=$("${cmd[@]}" 2>/dev/null)
echo "$cmd"