打开xterm telnet连接(Mac OS X)

Fab*_*her 1 x11 macos applescript telnet xterm

我一直试图将这个脚本正确地使用几个小时并且相当远,但是我被困在将命令传递到X11 xterm窗口.

我需要连接到xterm telnet服务器.这是正常的程序:

  • 打开终端
  • 键入命令:( xterm -fa Monaco -fs 12这将打开一个X11窗口,具有更大的字体)
  • 在新的xterm窗口中我键入: telnet -l username server ip
  • 这将打开telnet连接并提示输入密码

因为一些没有终端知识的用户必须能够访问这个连接,我尝试了几种编写可以在Mac上运行的脚本的方法.并打开连接以允许用户在打开的telnet窗口中工作.我最终使用AppleScript,并编写了以下脚本:

tell application "X11"
    activate
end tell

tell application "System Events"
    tell process "X11"
        tell menu bar 1
            tell menu "Applications"
                click menu item "Terminal"
                tell window 1
                    run
                    do script "xterm -fa Monaco -fs 12"
                    delay 2
                    do script "telnet -l meister 192.169.25.1"
                end tell
            end tell
        end tell
    end tell
end tell
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这不起作用.它只打开一个X11 xterm窗口,没有更大的fonface,没有终端命令,它只是一个空窗口.

你是否有人知道如何更改脚本以便它可以正常工作,或者有可能用其他类型的脚本而不是AppleScript来实现它?

非常感谢您的帮助!

aba*_*ert 5

首先,启动xterm只需执行以下操作:

do shell script "xterm -fa Monaco -fs 12 -wf"
Run Code Online (Sandbox Code Playgroud)

如果需要,这将自动启动X11.

根据您的系统,/ usr/X11/bin可能不在路径上,因此您可能希望这样做:

do shell script "/usr/X11/bin/xterm -fa Monaco -fs 12 -wf"
Run Code Online (Sandbox Code Playgroud)

如果您希望xterm运行命令而不是仅打开shell,请使用-e参数:

do shell script "/usr/X11/bin/xterm -fa Monaco -fs 12 -e telnet -l meister 192.169.25.1"
Run Code Online (Sandbox Code Playgroud)

如果telnet命令失败,xterm窗口将立即关闭; 调试它,在"-e"之前添加"-hold".

既然你问过"其他类型的脚本而不是苹果脚本",那么同样的事情显然是bash中的一行,有两个与shebang:

#!/bin/sh
/usr/X11/bin/xterm -fa Monaco -fs 12 -e telnet -l meister 192.169.25.1
Run Code Online (Sandbox Code Playgroud)

如果将其保存为"doit"和"chmod + x doit",则可以将其作为"./doit"从终端运行.

或者,如果您希望在Finder中双击它,请将其重命名为"doit.command".