~/Shell
Bashが通常のユーザーアカウントで起動されるたびに、実行したいディレクトリにシェルスクリプトがあります。だから私がしたことは以下を追加することでした~/.bashrc
。
for i in `find ~/Shell/ -name "*.sh"`
do
sh $i
done
.sh
ただし、何らかの理由で、私のディレクトリにあるファイル拡張子を持つファイルに含まれる関数は~/Shell
自動的にロードされません。たとえば、ファイルの関数を呼び出したときに新しいユーザー端末で関数を実行したabash
ときにコマンドが見つからないというエラーが発生しました。~/Shell/bash.sh
abash
私はディレクトリ内のすべてのファイルを手動でリストし~/Shell
、Bashが起動したときに実行されるようにドットを前に追加できることを知っています。たとえば、私のファイルに次の内容があったことがあります~/.bashrc
。
. ~/Shell/bash.sh
. ~/Shell/cd.sh
. ~/Shell/emerge.sh
...
うまく動作しますが、新しいシェルスクリプトをfor
追加すると。~/Shell
~/.bashrc
私も今試してみました:
for i in `find -name "~/Shell/*.sh"`
do
sh $i
done
そして:
for i in "~/Shell/*.sh"
do
sh $i
done
そして:
for i in `find -name '~/Shell/*.sh'`
do
sh $i
done
成功しませんでした。
ベストアンサー1
これをあなたの.bashrc
:
for rc in ~/Shell/*.sh
do
. "$rc"
done
それからレースに出発してください!
いくつかの注意:
bash
(およびzsh
その他)コマンドは読み取ることができますが、普遍的ではなく、私が知っている最も正確なシェルsource
には存在しません。dash
現時点では、同じコードを使用してほぼすべてのBourne-Shell派生プログラムにコードをロードできます。
シェルから直接生成されたファイルの伝統的な命名規則は、サフィックスまたはrc
(.rc
たとえば.bashrc
)を使用することです。 rc
「実行コマンド」を示します。この.sh
拡張は通常、実行可能なスクリプトプログラムで使用されます。 (これらはすべてただルールではなくルールです。 )