변수를 실행한 후 파일의 텍스트를 매개변수로 전달

변수를 실행한 후 파일의 텍스트를 매개변수로 전달

다음 예가 있습니다.

[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
)

$(...)따옴표가 없는 구분 기호를 사용하여 여기 문서에 있는 것처럼 확장됩니다 .

관련 정보