ファイルの代わりにコマンドラインの文字列からbash関数を取得したいと思います。代わりに、次のようにしてください。
source file.sh
私は似たようなことをしたい:
source `cat <<EOF
some_func(){
echo "nodejs version: $(node --version)"
echo "r2g version: $(r2g --version)"
echo "npm version: $(npm --version)"
}
export -f some_func;
EOF`
これは可能ですか?
ベストアンサー1
これはBash 4では機能しますが、Bash 3では機能しません。
#!/usr/bin/env bash
source <(echo "export foo=bar");
echo "$foo"
source <(cat <<< "export foo=bar");
echo "$foo"
source <(cat <<EOF
export foo=bar
EOF
);
echo "$foo"
たぶんファイル記述子から読み取れませsource
んか?.