複数のアプリケーションがシステム変数(この場合は$ PYTHONPATH)に追加できるようにする必要があります。各アプリがモジュールを追加できるディレクトリを指定することを考えています(例:.bash_profile_modulename)。 〜/ .bash_profileで次のようなものを試しました:
find /home/mike/ -name ".bash_profile_*" | while read FILE; do
source "$FILE"
done;
しかし、機能していないようです。
しない
for f in ~/.bash_profile_*; do source $f; done
十分ですか?
編集:ls ~/.bash_*
の追加レイヤーは、bashグロビングを指示するために簡略化されました。
上記のデニスに同意します。あなたのソリューションはうまくいくはずです(「完了」の後のセミコロンは必要ないはずです)。ただし、forループを使用することもできます
for f in /path/to/dir*; do
. $f
done
Dirkの回答のように、lsのコマンド置換は必要ありません。これは、たとえば/etc/bash_completion
で他のbash補完スクリプトを/etc/bash_completion.d
で調達するために使用されるメカニズムです。
Oneliner(bash/zshのみ):
source <(cat *)
aus man bash:
ソースファイル名[引数]
ein source config/*
最初の引数が取得され、config /内の他のすべてのファイルは、それが取得するスクリプトへの引数になります。
for file in "$(find . -maxdepth 1 -name '*.sh' -print -quit)"; do source $file; done
この解決策は、私がこれまでに見つけた最も投稿可能なものです。
str="$(find . -type f -name '*.sh' -print)"
arr=( $str )
for f in "${arr[@]}"; do
[[ -f $f ]] && . $f --source-only || echo "$f not found"
done
私はテストし、それを使用しています。を変更するだけです。スクリプトが入っているフォルダを指定すると、それが機能します。
この関数を使用して、ディレクトリ内のすべてのファイル(存在する場合)を調達できます。
source_files_in() {
local dir="$1"
if [[ -d "$dir" && -r "$dir" && -x "$dir" ]]; then
for file in "$dir"/*; do
[[ -f "$file" && -r "$file" ]] && . "$file"
done
fi
}
追加のファイルチェックは、ディレクトリが空であるためにパターンが一致しないコーナーケースを処理します(ループ変数がパターン文字列自体に展開されます)。