【发布时间】:2012-06-27 17:50:55
【问题描述】:
我已经尝试了几个小时来正确地编写这个脚本并且已经走了很远,但是我被传递给 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
但不幸的是,这不起作用。它只打开一个 X11 xterm 窗口,没有更大的字体,也没有终端命令,它只是一个空窗口。
你们中是否有人知道我可以如何更改脚本以使其正常工作,或者也许有一种方法可以使用其他类型的脚本而不是 AppleScript 来做到这一点?
非常感谢您提前提供的帮助!
【问题讨论】:
-
你为什么用终端打开xterm?为什么不在终端应用程序中创建 telnet 会话?如果你这样做了,有几种方法可以创建在终端中打开 telnet 会话的快捷方式,你可以安排字体或其他外观设置以你想要的方式进行设置。
-
嗨,克里斯,我没有使用终端,因为当我尝试连接到服务器时它会导致错误:
-
这就是我得到的:“Fehler beim Oeffnen von /diwaprg/ariadne/v3term/xterm-256color> 2 -Fehler beim Oeffnen von /diwaprg/ariadne/v3term/xterm -256color> 2 AMASK : Datei /gewa/diwaprg/ariadne/v323tc/xterm-256color kann nicht eroeffnet werden ! AMASK : 可变术语richtig gesetzt ? DIWA: Fehler nach Aufruf MEDIWA (1) DIWA : /diwaprg> MANDANT : /GEWA-DB> AMASKDIR: /diwaprg/amd> 连接被外部主机关闭。" 使用 xterm 可以工作 ;)
-
@abarnert,对。该错误意味着远程主机上未安装 xterm-256color terminfo 文件。最好的解决方案是安装它们。除此之外,将
TERM环境值的值自定义为安装在远程主机上的 值。最可靠的方法是在远程主机上配置 shell 以检查 xterm-256color 并将其映射到存在的 shell。最简单的解决方案是在本地主机上调用 telnet 时手动设置环境值。为方便起见,您可以将其包装在本地 shell 启动脚本中的 shell 函数中。 -
注意(因为很多人都搞错了):避免使用
xterm-color,因为它代表了 xterm 的旧分支,它与现代 xterm 和终端有一些不兼容。如果未安装xterm-256color,则优先选择xterm-88color、xterm-16color、xterm。仅当您在 Lion 10.7 之前的 OS X 上使用终端时才使用xterm-color(xterm-color更适合 10.7 之前的旧版本终端,但更适合 10.7 及更高版本)。
标签: macos applescript x11 telnet xterm