私はMacでOSXを使用しており、端末をたくさん使用しています。.bash_profile
ファイルを開くを使用して、シェルで実行されるいくつかの起動スクリプトを作成しました。しかし、ターミナルアプリケーションを起動し、最初のシェルセッションが開かれたときにそのうちの1つだけを実行したいと思います。ターミナルアプリケーションが開かれたとき(最初のbashシェルが開いたとき)は、一度起動する方法がわかりませんが、後で開く新しいシェルではそうではありません。
答え1
これが私が今行ったことです:
私はこれを追加します.bash_profile
# Only do this in the first terminal opened
termsOpen=$(who | grep 'ttys' | wc -l)
if (( $termsOpen < 2 )); then
echo "This is echoed in the first tty opened only"
fi
したがって、端末を初めて実行すると、次の結果が表示されます。
Last login: Mon Sep 26 08:30:42 on ttys001
This is echoed in the first tty opened only
別の端末を開くと(したがって、2つの端末ウィンドウが同時に開きます)、次の結果が表示されます。
Last login: Mon Sep 26 08:33:43 on ttys000
**操作方法:**
新しいターミナルウィンドウを開くたびに `.bash_profile`を取得します。このコマンド
who | grep 'ttys' | wc -l
開いている端末ウィンドウの数を数えます。 2未満の場合(つまり、1つの端末ウィンドウのみがアクティブ)、echoThis is echoed in the first tty opened only
バージョン情報:
OS X バージョン: 10.11.5
bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)