標準入力から渡されたファイル名を取得しようとしています。私の計画は、次の関数を作成することです。
mySource() {
# get stdin and pass it as an argument to `source`
source $(cat)
}
次のように呼び出します。$ echo "file1.sh" | mySource
場所は次file1.sh
のとおりです。
FILE=success
export FILE
$FILE
初期化があると仮定するhello world
と、実行時に印刷されると$ echo "file1.sh" | mySource
予想されますが、代わりに;$ echo $FILE
success
hello world
関数からファイルをインポートする方法はありますか?
答え1
機能は次のように変更できますmySource
。
mySource() {
source "$1"
}
次に、次のように呼び出します。
$ mySource file.sh
$ printf '%s\n' "$FILE"
success
mySource
複数のファイルを処理することもできます。
mySource() {
for f do
source "$f"
done
}