내가 나오지 사용하여 파일에서 (변수 이름의 이름을 따서 명명) 자리를 대체 할 수대체 쉘 변수 참조
와$clientId = '${ID}';
$clientSecret = '${SECRET}';
:
ID="toto"
SECRET="tata"
sed -i -e "s/\${ID}/$ID/" -e "s/\${SECRET}/$SECRET/" $file
그것은이 대체를
$clientId = 'toto';
$clientSecret = 'tata';
나는 인수를 사용하여 루프를 통해이 작업을하려고합니다 :
ID="toto"
SECRET="tata"
OTHER="franck"
./config.sh $file $ID $SECRET $OTHER
config.sh
for var in "${@:2}"; do
echo "$var" # toto or tata or franck
echo $!{var} # always var whatever I try, would like ID or {SECRET} or ${OTHER}
SETTINGS="$SETTINGS -e "s/\${var}/$var/"" # so this has no effect
done
FILE=$1
sed -i $SETTINGS $FILE
감사합니다. – kursus
'$ sed_expr'이 정확히 예상대로 임에도 불구하고'sed' 명령은 스크립트 내에서 작동하지 않지만'sed : -e expression # 1, char 2 : unknown command :'-''를 얻습니다. 터미널에서 똑같은 출력 명령을 실행할 때 예상대로 작동합니다. 이것에 대한 어떤 생각? – kursus
작은 따옴표,'e' 옵션을 제거하고 루프에서'sed' 명령을 실행하여 해결했습니다. 고맙습니다. – kursus