.profile/.bashrcから機能をエクスポートする

.profile/.bashrcから機能をエクスポートする

私は何が間違っていましたか?コマンドラインでこれを行うと呼び出されますが、.profileから読み込むときは呼び出されません。 Linux Mint Qiana, Bash 4.*(重要な場合)。

function android() { command /opt/android-studio/bin/studio.sh "$@" & disown ; }

export -f android

コマンドを短くして、コマンドを拡張し、セミコロンを削除し、改行を使ってみました。まだ満足できる妥協点が見つからないようです。コマンドラインから実行するとエラーはなく、関数は現在上記のように機能します。

注:「ロード」とは、編集中の.profileの同じユーザーで新しいターミナルセッションを開くことを意味します。そして私はこの関数の単純なバージョンで始まるので、functionのようなものを使っています。うまくいかなかったので、正しい組み合わせを得るためにアイテムの追加と削除を始めました。コマンドラインでは、すべてがうまく機能します。 commanddisown

ベストアンサー1

UbuntuとLinux Mintは、基本的な方法を含むGUIセッションを開始するほとんどの方法をbash/etc/profileではなくbashから読み込みます。 dash は bash よりも高速でメモリを少なく使用するシェルですが、関数のエクスポートなどの一部の機能が不足しています。などの内容を含める必要があります。~/.profile/bin/sh/bin/sh~/.xsession-errors.profile: 42: export: Illegal option -f

環境に関数を置かずに、対話型シェルの初期化ファイルで定義してください~/.bashrc。すべての対話型シェルはファイルを読み取り、非対話型シェルはほとんどbashではなくshなので、エクスポートする必要はありません。したがって、disown非対話型シェルではまったく使用されていない関数はインポートされません。

おすすめ記事