FISHで実行するときのbash "コンテキスト"のカスタマイズ

FISHで実行するときのbash

まず、私はOSX10を使用しています。私のデフォルトのシェルはBASHです。ターミナルエミュレータを開くと、FISHシェルが自動的に実行されるように設定しました(.profileと.bashrcを介して)。これにより、FISHをロードする前にBASHで変数などを設定できます。

しかし、時にはFISHシェルでBASH用に書かれたスクリプトを実行したいことがあります。これは、FISHがBASHと構文的に互換性がないために必要です。私のFISHに「bash」と入力すると、私が開いたBASHは私の.profile / .bashrcのために自動的に別のFISHを開きます。これは、2番目のFISHの上にあるBASHに入るには、一番上でFISHを終了する必要があるため、すべてを見逃すようにします(愚かな意図)。

私の質問は、BASHがログインシェル(.profile実行)と非ログインシェル(.bashrc実行)としてロードできることです。 FISH内でBASHを実行するときにロードするように設定できる3番目の「コンテキスト」を追加できますか? .bashrcまたは.profileをロードできないため、デュアルFISHの問題が解決されます。

私の質問を理解してください。答えてくれてありがとう!

ベストアンサー1

fish「in」を指し始める変数をスクリプトで設定できますfish

export IN_FISH=yes

その後、その前にすでに設定されていることを確認してください。

if [ "${IN_FISH}" != "yes" ]; then
    export IN_FISH=yes
    fish  # replace with the command you use to start fish
fi

したがって、最初の項目にはbash設定IN_FISHがないため、設定および開始fishされます。bashFISHから始めたら、すでにIN_FISH設定されているので、もう一度bash始めないでfishください。

おすすめ記事