いくつかのスクリプトがインストールされています。/etc/profile.dエクスポートしてコマンドラインで使用できる機能を定義します。サンプルスクリプトは次のとおりです。
# This function should be available as a command.
function gcd () {
}
# Bash completions for gcd
_gcd_completions () {
}
complete -F _gcd_completions gcd
gcd
これにより、端末で名前付きコマンドを使用できるようになります。
ログインシェルではうまく機能しますが、インタラクティブシェルでは機能しません(「gcd」コマンドが見つかりません)。まるでX11にログインし、そこからコンソールを起動したようです。
会話が見つかりましたここエクスポートした関数を使用することをお勧めしますexport -f
。私は以前試しました:
# This function should be available as a command.
function gcd () {
}
# Bash completions for gcd
_gcd_completions () {
}
export -f gcd
complete -F _gcd_completions gcd
しかし、これは行動を変えませんでした。
export
私も試してみましたがdeclare -fx
ダメです。
X端末から直接移動すると、source /etc/profile
コマンド(および補完、fwiw)が機能し始めることがわかりました。だから私は構文を知っており、すべてが少なくとも正確です。/etc/設定ファイルスクリプトの実行とコマンドの設定。これらの対話型シェルコンソールでは自動的には機能しません。
また、他の環境で宣言したいくつかの環境変数も確認しました。/etc/profile.dスクリプトは対話型シェルで使用できるため、/etc/設定ファイルこのシェルで何かが行われています。
どうすればいいですか?