Mac OS Xのターミナルタイトルを変更する


39

Mac OS Xでターミナルウィンドウのタイトルを任意に変更するにはどうすればよいですか?私はこの質問この魔法のようなものを見てきましたが、それは単なるMac OS Xコマンドだと思います。


これについてOS Xに特化したものは何もないことに注意すべきです-答えはほとんどすべての端末で動作します。
アンドリューエイレット

それはBash固有ですか?
ダンローゼンスターク

@Andrew Aylett、それで(下の)答えに入れたスクリプトは、Linuxディストリビューションでも動作しますか?
ダンローゼンスターク

はい、unix-y端末を使用するどこでも(sh派生シェルで)動作するはずです。
アンドリューエイレット

回答:


48

この記事ではその方法を説明します。

基本的に、画面にエコーされる文字シーケンスを使用して、表示するタイトルを端末に通知します。

title='My first title'
echo -n -e "\033]0;$title\007"

上記の例では、変数titleが端末のタイトルになる間に設定されているものは何でも。もちろん、次のようなエコーする文字列にタイトルを含めることができます。

echo -n -e "\033]0;My first title\007"

ただし、最初の方法を使用すると、後で使用したり拡張したりするのが少し簡単になります。


優れた。サンプルスクリプト(このような?echo -n -e "\033]0;$1\007")を回答に含めて、ベストアンサーとしてマークしてください。
ダンローゼンスターク

2
printf関数は、より信頼性の高いことがありますprintf "\033]0;%s\007" "$title_variable"(さまざまなオプションとの行動エコーはまた、中に変数の割り当てすべてのシステム、シェル間で同じ、あるいはシェルオプションではありません)bashは、等号の前後にスペースを持つべきではありません。
クリスジョンセン

1
関数内で$ *を使用したため、タイトル文字列を引用する必要はありません。
BeepDog

Cプログラム内からタイトルを変更する方法はありますか?私が考えているプログラムは、ncurses.hに基づいてアニメーションを実行しているため、端末にエコーする方法がわかりません:
phs

OK:fprintf(stdout、..)が機能します。尋ねる前に試してみるべきだった。
phs

34

以下を追加~/.profileすると同じ効果が得られます。

# function for setting terminal titles in OSX
function title {
  printf "\033]0;%s\007" "$1"
}

そして、クイックtitle 'et voila'はすべてのタブを整理します。


.profileに多くの関数がある場合、なぜ問題になるのですか?制限はありますか?
tgkprog

1
IDKの理由ですが、.profileではなく.bash_profileを編集する必要がありました
ナキロン

2
または:alias title="printf '\033]0;%s\007'"
ケノーブ

export alias title="printf '\033]0;%s\007'"
ムウェイ

を使用して追加することもできsudo nano /etc/bashrcます。これはすべてのユーザーに対して実行する必要があります。ターミナルセッションを再起動source /etc/bashrcするか、変更を適用します。
ユージンクラブホフ

8

Dan MgGの答えのリミックス:

echo -n -e "\033]0;$1\007"

/ usr / bin / title(sudo!を使用)というファイルに保存し、+ xにchmodします。次に、どこからでも入力できます

title 'Trying to Figure This GIT Thing Out'

素敵な小さなタイトルを取得します。

(OSXを使用していない場合、構文が正しく理解されている場合、構文は異なる場合があります)


OS Xの新しいバージョンのいずれかを使用している場合は、/usr/local/bin/title代わりに行うことができます。
サミーベンチェリフ

2

shベースのコマンドラインソリューションの代替として、OS Xターミナルアプリには、タイトルを次のように変更する設定があります。簡単に。


1

OS Xでは、端末設定はに保存され~/Library/Preferences/com.apple.Terminal.plistます。

端末のタイトルは設定に保存されWindowTitleます。


0

これをありがとう。関数を.bashrcに追加しました。

    function stit() {
    echo -n -e "\033]0;$1\007"
}

私の考えでは、「stit」=「set_title」の便利なショートカットです。そして、ウィンドウのタイトルをその場で設定したいとき、次のように入力します。

stit "[new window title]"

0

ベストアンサーとしてマークされた返信は正常に動作します...これは私がやったことです...

tell application "Terminal"
    activate
    do script "echo -n -e \"\\033]0;WorkerTab1\\007\"; cd $HOME/folder1"
end tell

これにより、新しいタブの名前がWorkerTab1に設定され、「cd」などの他のコマンドが実行されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.