何らかの理由で(?)スクリプトを書くとき、通常は機能しないか、部分的にのみ機能します。それから.
orを使ってみるとsource
完璧に動作します。スクリプトがさまざまな点で異なるため、スクリプト全体が機能するためにソースが必要なものを分離するのは難しいため、この問題の原因は何であるかわかりません。また、.bashrc
エイリアスと関数からスクリプトに項目を移動すると、ほとんど常にこのようなことが起こることがわかりました。
しかし、実際の質問について、上記の場合、ソースポイントを「飲み込んで」毎回ポイントを打つ必要なく、スクリプトを単一の単語コマンドとして引き続き使用できるようにする最善の方法は何ですか?
答え1
ファイルを別のプロセスとして実行するのではなく、script
実際にファイルをインポートするためにコマンドを呼び出すには、次の関数を生成します。script
script () { . /path/to/script; }
関数を永久に作成するには、その関数をシェルの関連するrcファイル(たとえば)に追加し~/.bashrc
ますbash
。
答え2
実用的な例を持つ方が良い(または「機能しない」ことを例に分けて)。
つまり、source
ファイルにアクセスすると、そのジョブが呼び出されたのと同じ環境(シェル)でその内容を実行します。 source
ingは複数のスクリプトに変数を含める優れた技術です。
実行したいスクリプトがディレクトリにない場合は、「PATH
ドット」、「スラッシュ」、「ファイル名」を入力して現在のパスを参照できます(スクリプトを実行するため)。これは「ソース」とは全く異なります。