[-t 1]何を確認する必要がありますか?

[-t 1]何を確認する必要がありますか?

Windowsからブートするときに、zshブート方法を見つけました。bash

https://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/

最後に、次のコードを追加することをお勧めします.bashrc

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

どういう意味ですか[ -t 1 ]

これは本当ですか?

それで、私ができることはすべてありますか?

exec zsh

ベストアンサー1

[]testコマンドのショートカットです。

によるとman test

-t FD
FD が端末に関連付けられたファイル記述子であれば真。

したがって、bashを対話型シェルとして実行すると(ターミナル - 参照)これ用語説明スレッド)、bashはzshに置き換えられます。

.bash* ファイルに関する追加情報:

bashを次のように使用するとき対話型ログインシェルまたは --loginオプションを持つ非対話型シェルまず、/ etc / profileファイル(ファイルが存在する場合)からコマンドを読み取り、実行します。ファイルを読み込んだら、~/.bash_profile、~/.bash_login、~/.profile を順番に探して、存在して読み取れる最初のファイルからコマンドを読み込んで実行します。この動作は、シェルの起動時に --noprofile オプションを使用して無効にできます。

いつログインシェルの終了、bashは〜/ .bash_logoutファイルと/ etc / bash.bash_logoutファイル(これらのファイルがある場合)からコマンドを読み取り、実行します。

いつ ログインシェルではなく対話型シェル起動後、bashはコマンドを読み込み、実行します。~/.bashrc、ファイルが存在する場合。 --norcオプションを使用してこれを無効にできます。 --rcfile file オプションは、 bash が ~/.bashrc の代わりにファイルからコマンドを読み込んで実行するように強制します。

スティーブン・チャゼラスは次のように語っています。
シェルはstdoutがターミナルにならずに対話することができ、シェルはstdoutで非対話式にターミナルと対話することができます(たとえば、出力を(ユーザーbash.bashrcログインシェルを持つホストシステムでssh host cmd)シェルが対話型であるかどうかをテストする正しい方法です。bashbash --login -c 'some code'case $- in *i*)...

おすすめ記事