答え1
filename.sh
定義を含める場合、またはショートカットをunload_proxy
使用する必要があります。source ./filename.sh
. ./filename.sh
ファイルを入手すると、現在のシェル環境で評価され、新しい機能を定義できます。
あなたの例では、ファイルを直接実行します(例:いいえ出所)、事件の順番は次のとおりです。
この説明の目的に応じて、現在のシェルのコピーとほぼ同じ新しい環境を含む新しいbashシェルを作成します(一部のオプションとオブジェクトの定義方法によって異なります)。
スクリプトはこの新しいシェルで実行され、その環境で機能を定義します。
スクリプトが終了し、ここで定義されている関数の新しいシェルも終了します。
コントロールは、関数が定義されていない元のシェルに返されます。
として実行すると、source ./filename.sh
新しいシェルが起動しないため、手順2のみが発生し、現在のシェルで発生します。
*ファイルが正しいと仮定シェルボーン、例えば#!/usr/bin/env bash