파일 대신 소스 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수 없습니까 ?.

관련 정보