[bash] Bash에서 변수에 출력 할당
cURL의 출력을 변수에 다음과 같이 할당하려고합니다.
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
그러나 스크립트를 실행하면 다음이 발생합니다.
./update.sh: 3: =[my ip address]: not found
출력을 $IP
올바르게 입력하려면 어떻게 해야합니까?
답변
셸에서는 할당하려는 변수 앞에 $를 넣지 않습니다. 변수를 참조 할 때는 $ IP 만 사용하십시오.
#!/bin/bash
IP=$(curl automation.whatismyip.com/n09230945.asp)
echo "$IP"
sed "s/IP/$IP/" nsupdate.txt | nsupdate
답변
인스턴스 내에서 ec2 인스턴스 영역을 가져 오는 더 복잡한 것과 같습니다.
INSTANCE_REGION=$(curl -s 'http://169.254.169.254/latest/dynamic/instance-identity/document' | python -c "import sys, json; print json.load(sys.stdin)['region']")
echo $INSTANCE_REGION