我想远程运行本地命令文件,并在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
答案 0 :(得分:1)
我认为您可能需要ssh -t ....
来分配tty。严格写入stdout
或std::cout
的程序应该可以在-t
之后正常运行,但如果您运行的程序需要访问/dev/tty
(或其中任何一个&{}} #39; s等效物),例如,要求输入密码或其他内容,您需要-t
选项ssh
。
答案 1 :(得分:0)
-v verbose output
http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch07_03.htm