我想从命令行中的字符串而不是文件中获取 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
无法.
从文件描述符中读取?