のような設定ファイルを実行せずに対話型 zsh を起動するにはどうすればよいですか.zshrc
?
を試しましたzsh -d -f -i
が、プロンプトは で指定されたものと同じだったので~/.zshrc
、それらのオプションは機能していないようです。
macOS 10.15.4 で zsh 5.8 を実行しています。
答え1
zsh -d -f -i
はそれには正しいですが、-d
( によって暗示されます-f
) および-i
(zsh
コマンドラインで実行するスクリプト/コードが指定されておらず、stdin が端末である場合は、とにかく対話的に実行されます) は冗長になります。
ただし、これは/etc/zsh/zshenv
まだ解釈されており、無効にする方法はないと思います。info zsh RCS
詳細については、を参照してください。
あなたの場合、PS1
は環境から継承されました。 は、PS1
シェルをカスタマイズできる多くの環境変数の 1 つです。
初期のシェルには rc ファイルがなく、カスタマイズは環境変数 (または で設定し~/.profile
、~/.login
ログイン シェルによって解釈される) のみで行われていたことに注意してください。
シェルの設定に使用される変数は多数あります。参照:
info zsh 'Parameters Used By The Shell'
詳細については、 を参照してください (ただし、一部の値については、環境内で見つかった値は無視されることに注意してください)。
HOME
、、、、PATH
などの環境変数の一部は、シェル以外の多くのプログラムによって使用されるため、それらを設定解除したり、を使用してすべてを設定解除したりすることはお勧めできませんSHELL
。COLUMNS
LANG
LC_*
env -i
そのドキュメントにリストされている変数のほとんどは、環境に配置するのではなく、~/.zshrc
通常のシェル変数として宣言する必要があります。PS1
はその 1 つです。 はPS1
多くのシェルでプロンプトのカスタマイズ変数として使用されますが、構文はシェルによって大きく異なります。
残念ながら、一部の GNU/Linux ディストリビューションでは、PS1
システム起動ファイルで変数を設定およびエクスポートし、bash
シェル (GNU シェル) の構文に固有の値で定義します。つまり、bash
その環境以外でシェルを起動するとPS1
、意味不明なプロンプトが表示されます。
PS1
環境から削除された状態でシェルを起動するには、次のようにします。
(unset -v PS1; zsh -f)
いくつかの実装ではenv
、次のことも可能です。
env -u PS1 zsh -f
環境変数なしで起動するには(ただし、上で述べたように、これはおそらく良い考えではありません):
env -i zsh -f