質問

シナリオ

使うターミナルSSH多くは、端末のアプリを終了する場合の最後のタブを閉じを終了します。すでに持っている端末ウィンドウ自体をセットにある成功の出口しかし、端末に保ちます。私はRickyキャンベルのチュートリアル こちらの を採用するAppleScriptを終了するには端子です。のAppleScriptコンビニエンスストアで実行する場合以外のターミナル、しかし私は何とかできませんので、トラップコマンドで作業するニーズに配置される端子です。

参考までに関連するテキストはこちら

私たちにキックオフします。このbashコマンド"の罠"に陥られるようになってい音出口の信号です。ていることができ顔が私のユーザが開殻、こちらにご入力ください。プロファイルです。これはナノ:

$ナノ~/.概要

このファイルの追加は以下のどこかということです。する必要があるの編集、パスのAppleScriptファイルを作成した先:

トラップ'/usr/bin/osascript$HOME/Scripts/QuitTerminal.scpt"出口

これは音の出口信号を内bashとさせていただくことがでのスクリプトを作成します。

質問

入れは行っていませんュはこの問題です。何らかの理由にトラップが焼くには働きも良くとても美味しいで、数多くの再起動.ある別の方法は、端末アプリの時は、最後のタブを退?

のリンクによる通ledへのソリューションとなります。記事によると、トラップコマンドのあるべき .profile, がいたところに配置する .bashrc.移動するときは、正しいスクリプトは固定の問題です。

役に立ちましたか?

解決

アプローチ ここに与えられます 少しシンプルに見えます - それはあなたのために働くでしょうか?

「exit」の代わりに「quit」と入力することを覚えておきたい場合は、bashを使用している場合は、次のものを追加するだけです。 .bashrc または他のシェルスタートアップスクリプト:

trap '/usr/bin/osascript -e "tell application \"terminal\" to quit"' 0

それは何をしますか?シェルが信号0(ゼロ)を受信すると、つまり、終了するように指示されると、最後に行うようにこのコマンドを実行します。これにより、シェルなどが優雅に出ることができ、ターミナル.appにapplescriptを介して終了するように依頼することで、同じことができることを確認します。言い換えれば、「出口」と入力し、シェルが終了すると、端子がすべてきれいに終了し、自然が意図した方法です。

完全なスレッドはこちらにあります.

他のヒント

また、この複雑なコマンドを使用することもできます。これは、独自のプロセスを終了することに関する警告をトリガーしません。

osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit

または、エイリアスを定義することもできます( quit また exit)あなたのプロフィール:

alias quit='osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit'

あなたは必要ありません trap 任意の信号。

簡単には、osascriptコマンドをあなたに入れます ~/.bash_logout ファイル(存在しない場合は作成)

osascript -e "tell application \"Terminal\" to quit"

.bash_logout ログアウトした後、Bashによって実行されます。このファイルに任意のシェルコマンドを入力でき、それぞれがログアウトすると実行されます。

たとえば、最後に出て、終了する前に、フォルダーにファインダーウィンドウを開くことができます。 open . またはように...

open .
say "Good bye, my master - leaving terminal now, continue with Finder"
osascript -e "tell application \"Terminal\" to quit"

等々...

だが、こうしたurlのためのマルチtabed端子。http://cyberdork33.wordpress.com/2010/05/25/make-osx-terminal-quit-when-last-window-closed/
で試os x10.8.2
TL.DR:
タブの部分(口近現在のタブ)
端末>設定>設定>シェル
時のシェルの終了ステータスには影響:ありの場合はシェルの終了を綺麗に(またはウィンドウを閉じ)
迅速かつ前:なし(または場合に限りありプロセス以外のログインシェル:挿入"osascript")

最後のタブの部分(口を閉この最後のタブ全体の端子windowsめの端子です。アプリ):
1)追加 ~/.bash_profile:

trap '/usr/bin/osascript $HOME/Scripts/QuitTerminal.scpt' EXIT

2)作成スクリプト/QuitTerminal.scpt

tell application "Terminal"
    # If there is only one tab remaining, and it contains the word "logout"
    # then this is the final window
    if (count of (tabs of (every window whose visible is true))) = 1 then
        try
            set theContents to words of ((contents of tab 1 of window 1) as Unicode text)
            set exitLastTab to (theContents contains "logout")
        on error
            set exitLastTab to false
        end try

        if exitLastTab is true then
            quit
        end if

    else if (count of (tabs of (every window whose visible is true))) < 1 then
        # If no window remains open, then obviously we can quit the app.
        # This would occur when the final window is closed without 'exit'
        quit
    end if
end tell

希望です。

ライセンス: CC-BY-SA帰属
所属していません apple.stackexchange
scroll top