サブシェルで-nを有効にすることを忘れないでください

サブシェルで-nを有効にすることを忘れないでください

で検索できるecho built-inように無効にしました。私はこれにコマンドを使用しました。下記をご覧ください。echo$PATHenable -n

$ type echo
echo is a shell builtin
$ enable -n echo
$ type echo
echo is /bin/echo

echoただし、現在のシェルでサブシェルを開くと、組み込みシェルが再利用されます。下記をご覧ください。

$ type echo
echo is /bin/echo
$ bash
$ # Now I am in child shell
$ type echo
echo is a shell builtin

echoサブシェルでもこの​​設定が見つかるように$PATH(つまりenable -n echo有効なまま)、サブシェルでこの設定を保存する方法はありますか?

答え1

はい、2つの方法があります。 1つは対話型で、もう1つは非対話型bashシェルです。

対話型bashシェルの場合は、コマンドをファイルenable -n echoに入れます$HOME/.bashrc。すべての対話型シェルは外部エコーを使用します。

はいいいえ非対話型シェルに対してこれを行うことをお勧めしますが、これを行うには、次の行を含むBASH_ENVように環境変数を設定する必要がありますenable -n echo。すべての非対話型bashシェルは、BASH_ENVファイルで指定されたファイルを実行するため、外部エコー。

答え2

("enable -n") は次のようになります。bash関連機能。あなたは置くことができます

enable -n echo

たとえば、そのシェル初期化スクリプトによって~/.bashrc呼び出されるすべてのシェルに影響を与えるようにします。

関連情報