我想远程运行本地命令文件并在 shell 窗口中本地获取输出。
实际上该命令是远程执行的,但我在本地 shell/控制台窗口中看不到结果。
知道如何实现以下命令吗?
ssh user@host 'bash -s' < /Users/daniel/bin/bash/fz_multiple_db_connections.sh
其中 fz_multiple_db_connections.sh 包含:
#!/bin/bash
connections=(
'mysql -u dbuser__name --password=passw dbname '
'mysql -u dbuser__name1 --password=passw1 dbname1')
for f in "${connections[@]}"
do
echo `${f}`
echo `mysql show tables`
echo `mysql exit`
done
exit
最佳答案
我认为您可能需要执行 ssh -t ....
来分配 tty。严格写入 stdout
或 std::cout
的程序应该可以在没有 -t
的情况下正常工作,但如果您正在运行的程序需要访问权限到 /dev/tty
(或其任何等效项),例如,要询问密码或其他内容,您需要 ssh< 的
.-t
选项
关于mysql - 本地 shell 中的 ssh 连接和远程输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110775/