捕获 SSH 端口转发器的输出 (sdout/stderr)

捕获 SSH 端口转发器的输出 (sdout/stderr)

我想将以下错误存储在变量中:

ssh -M -S /invalid/path/forwarder.socket -fnNT -Llocalhost:6301:remote_server:22 proxy_server

muxserver_listen bind(): No such file or directory

所以我尝试了:

result="$(ssh -M -S /invalid/path/forwarder.socket -fnNT -Llocalhost:6301:remote_server:22 proxy_server)"

但这让 bash 悬而未决。我尝试用nohup ... &或不用“-T”代替“-f”,等等,但没有任何效果。

我知道我可以使用临时文件 -$(...) > file但我真的更喜欢内存中的解决方案。有什么建议么?

答案1

我会将其重定向到 tmp 文件。

ssh -M -S /invalid/path/forwarder.socket -fnNT -Llocalhost:6301:remote_server:22 proxy_server 2> /tmp/tunnel.err 1> /tmp/tunnel.out

ERROUT=$(cat /tmp/tunnel.err)并使用and检查该文件STDOUT=$(cat /tmp/tunnel.out)

相关内容