1

私は何時間もこのスクリプトを正しくしようとしてきましたが、かなり遠くまで来ましたが、コマンドを 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 ではなく他のタイプのスクリプトでそれを行う方法があるのでしょうか?

よろしくお願いします!

4

2 に答える 2

5

まず、xtermを起動するには、次のようにします。

do shell script "xterm -fa Monaco -fs 12 -wf"

これにより、必要に応じてX11が自動的に起動します。

システムによっては、/ usr / X11 / binがパス上にない場合があるため、代わりにこれを実行することをお勧めします。

do shell script "/usr/X11/bin/xterm -fa Monaco -fs 12 -wf"

また、シェルを開くだけでなくxtermでコマンドを実行する場合は、-eパラメーターを使用します。

do shell script "/usr/X11/bin/xterm -fa Monaco -fs 12 -e telnet -l meister 192.169.25.1"

telnetコマンドが失敗すると、xtermウィンドウはすぐに閉じます。これをデバッグするには、「-e」の前に「-hold」を追加します。

「アップルスクリプトではなく、他の種類のスクリプト」について質問したので、同じことが明らかにbashのワンライナーであり、2つはシバンです。

#!/bin/sh
/usr/X11/bin/xterm -fa Monaco -fs 12 -e telnet -l meister 192.169.25.1

これを「doit」および「chmod+x doit」として保存すると、ターミナルから「./doit」として実行できます。

または、Finderでダブルクリックできるようにする場合は、名前を「doit.command」に変更します。

于 2012-06-27T00:17:36.380 に答える
-1

試す:

tell application "X11"
    activate
    tell application "System Events" to tell process "X11"
        click menu item "Terminal" of menu 1 of menu bar item "Applications" of menu bar 1
        delay 0.5
        keystroke "xterm -fa Monaco -fs 12"
        delay 0.5
        keystroke return
        delay 0.5
        keystroke "telnet -l meister 192.169.25.1"
        delay 0.5
        keystroke return
    end tell
end tell
于 2012-06-26T12:34:31.443 に答える