26

デフォルトで確実に実行されるようにしたいbashスクリプトがいくつかあり、現在それらを~/.profileMacに保存しています。保管場所を間違えていませんか?他の人の話を聞いて試してみましたが ( ~/.bashrc~/.bash_profileなど)、うまくいかないようです。

$ source ~/.profileこれらすべてと、スクリプトを実行時に構成し、ターミナルを開くたびに呼び出す必要がないようにスクリプトを配置するスクリプトの違いは何ですか?

4

5 に答える 5

15

~/.bash_profileとの両方~/.profileが存在する場合、bash~/.bash_profileは対話型ログイン シェルとして呼び出されたときにのみ読み取ります。

https://www.gnu.org/s/bash/manual/html_node/Bash-Startup-Files.html :

対話型ログイン シェルとして、または --login を使用して起動

Bash が対話型ログイン シェルとして、またはオプション付きの非対話型シェルとして呼び出されると、ファイルが存在する場合--loginは、最初にファイルからコマンドを読み取って実行します/etc/profile。そのファイルを読み取った後~/.bash_profile~/.bash_login、 、~/.profile、 をこの順序で探し、最初に存在し読み取り可能なコマンドからコマンドを読み取って実行します。

[...]

インタラクティブな非ログイン シェルとして起動

ログイン シェルではないインタラクティブ シェルが開始されると、Bash は からコマンドを読み取り、実行します~/.bashrc(そのファイルが存在する場合)。

~/.profile他のシェルでも使用されます。

ターミナルと iTerm はデフォルトで新しいシェルをログイン シェルとして開きますが (のようなものを実行することによりlogin -pf $USER)、多くの GNU/Linux ターミナル アプリケーションは新しいシェルを非ログイン シェルとして開きます。OS X ユーザーは、~/.bash_profile代わりに~/.bashrc.

于 2013-08-05T03:49:32.510 に答える
9
                     +-----------------+
                     |                 |
interactive shell -->|  ~/.bashrc      |
                     |                 |
                     +-----------------+

interactive shell自動的にソース~/.bashrcします。

ホーム ディレクトリの .bashrc を自動的にロードする必要がありますか? をご覧ください

于 2012-04-25T17:45:26.527 に答える
7

問題を修正するためにこれらを行いました:

cat .bash_profile >> .profile
rm .bash_profile

代替手段は次のとおりです。

echo "source ~/.profile" >> .bash_profile
于 2013-01-11T15:49:42.947 に答える
5

コメントアウトするか、( 内の) コマンドを削除してコールまたはソースにする場合は、永久にループし、プロンプトが表示されないことを確認source ~/.profileしてください。.bashrc.profile.bashrc.profile

于 2015-10-01T18:00:18.997 に答える
2

bash のセットアップが異なると、構成に応じて異なるファイルが自動的にソースされます。常に供給されるほぼ普遍的なファイル~/.bashrcは、このファイルをロードする bash コアのものです。そのファイルに行を追加する必要がsource ~/.profileあります。

-編集-

私の Linux と同僚の Mac から:

$ echo "echo hello" >> ~/.profile
$ echo "source ~/.profile" >> ~/.bashrc
$ bash
Hello
$ 
于 2012-04-25T17:43:43.533 に答える