ファイルの代わりにソースbash文字列

ファイルの代わりにソースbash文字列

ファイルの代わりにコマンドラインの文字列から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んか?.

おすすめ記事