从Perl脚本打开新终端窗口并执行SSH命令

时间:2019-06-11 17:08:40

标签: macos perl ssh

我有一个当前的perl脚本,我正在cygwin的Windows机器上执行该脚本,该脚本正在打开一个新的cygwin终端窗口并将ssh'进入远程机器。

尝试在Mac上复制mintty命令。

if ($noexec) {
    system("echo mintty -s 160,40 $cursor -o 
    BackgroundColour=$color -o 
    Title='\"$title\"' -e ssh $url \&");
} else {
    system("mintty -s 160,40 $cursor -o BackgroundColour=$color -o 
    Title=\"$title\" -e ssh $url \&");
}

1 个答案:

答案 0 :(得分:1)

这是代码的简单翻译,可以使用Applescript执行任务,如建议的副本Running a command in a new Mac OS X Terminal window

中所述
if ($noexec) {
    system(qq{echo osascript -e 'tell application "Terminal" to do script "ssh $url \& "'});
} else {
    system(qq{osascript -e 'tell application "Terminal" to do script "ssh $url \& "'});
}

在后台运行ssh命令似乎很奇怪。也许您应该将\&替换为; exit

我不确定mintty选项的含义(我想将几何设置为160x40并选择一个特定的光标吗?),所以我没有尝试实现它们。 https://superuser.com/questions/1188772/mac-command-to-change-the-background-color-in-a-terminal显示了如何通过Applescript在终端中设置背景颜色。

如果mintty或Windows ssh确实接受要连接的URL(也许像ssh://username@hostname之类的东西),则必须将其拆开并仅提取可接受的参数。 U * x ssh(类似于没有username@hostname协议说明符的ssh://)。