다음 예가 있습니다.
[nir]$ cat a.cfg
--arg1 $(./get.sh variable)
[nir]$ cat get.sh
echo "${1}-info"
[nir]$ cat a.sh
arg=$(cat a.cfg)
echo "$arg"
[nir]$ ./a.sh
--arg1 $(./get.sh variable)
a.sh
나는 돌아오고 싶다 --arg variable-info
. 최종 결과는 echo
실제 명령을 사용하여 토글하고 a.cfg
구문 분석한 후 매개변수로 보내는 것입니다.
답변1
당신은 다음을 가질 수 있습니다 a.sh
:
eval '
arg=$(cat << EOF
'"$(cat a.cfg)"'
EOF
)'
printf '%s\n' "$arg"
이 쉘 코드를 평가하도록 쉘에 지시합니다.
arg=$(cat << EOF
--arg1 $(./get.sh variable)
EOF
)
$(...)
따옴표가 없는 구분 기호를 사용하여 여기 문서에 있는 것처럼 확장됩니다 .