.zshrc のような設定ファイルを実行せずに対話型 zsh を起動します。

.zshrc のような設定ファイルを実行せずに対話型 zsh を起動します。

のような設定ファイルを実行せずに対話型 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などの環境変数の一部は、シェル以外の多くのプログラムによって使用されるため、それらを設定解除したり、を使用してすべてを設定解除したりすることはお勧めできませんSHELLCOLUMNSLANGLC_*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

関連情報