関数定義を.bashrcにソース化して.profileから読み取ることができないのはなぜですか?

関数定義を.bashrcにソース化して.profileから読み取ることができないのはなぜですか?

3つの設定ファイルがあります:.bashrcsource.bashrc_common.profilesource .bashrc。残念ながら、Gnomeにログインするとin.bashrcコマンドが見つからないというエラーメッセージが表示されます。fooところで、fooソースファイルに定義されていますが、.bashrcなぜ見つかりませんか?

# .profile

if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi
# .bashrc_common

function foo {
    echo "foo $1"
}

# .bashrc

source $HOME/.bashrc_common
#.....
foo "hello"

これはfoo、ターミナルbashシェルのどこでも動作し、エラーが発生するUbuntuログインだけです。

ベストアンサー1

.bashrcから取得したファイルには、非対話型で呼び出すときに実行を防ぐ明示的な保護があります。ストーリーのレッスンは - Gnome実行設定ファイルに問題がある場合は、明示的な「インタラクティブシェルでのみ実行」チェックがないことを再確認してください。

おすすめ記事