cat someFile | ssh someHost
当someFile不是bash脚本时,我该如何工作?我想远程执行一个perl脚本,但是当我尝试使用cat时,我从bash收到了很多语法错误。ssh命令。
如果要通过SSH连接推送Perl脚本,则必须在远程端运行Perl解释器。它将从stdin中读取脚本:
ssh remotehost perl < somescript.pl
对于Perl,它甚至应该-T
从输入的hashbang行读取命令行开关(除外)。
如果要将命令行参数提供给Perl解释器,可以将它们添加到命令行之后perl
。如果要为脚本提供参数,则需要明确告诉解释器从stdin读取脚本(否则它将以第一个参数作为要查找的文件名)。
所以,在这里-l
去解释,并foo
和bar
到该脚本:
echo 'print "> $_" foreach @ARGV' | ssh remotehost perl -l - foo bar
请注意,仅ssh somehost < script.sh
依靠与脚本兼容的远程登录Shell进行操作即可。(即,如果远程shell碰巧是其他东西,则Bash脚本将无法工作。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句