다음 명령을 실행하기 전에 문자열과 일치하는 명령의 응답을 기다려야 하는 bash 스크립트를 만들고 있습니다. 응답을 받은 후에는 해당 응답을 변수에 할당해야 합니다.
명령은 다음과 같습니다
/bin/oci --profile $USER compute instance list-vnics --instance-id $INSTANCEOCID | grep -oP 'ocid1.vnic[^"]+'
답글은 예시로 사용됩니다.
ocid1.vnic.oc1.ap-mumbai-1.amaaaaaakfvuezyaagala7nf53zeomzarbf2h24a2lynp7sgin7ujrkr7jla
이 응답을 받은 후 나중에 스크립트에서 다음과 같이 호출할 수 있도록 변수 VNIC에 할당해야 합니다.echo $VNIC
어떻게 해야 하나요?
답변1
grep
반환합니다진짜일치하는 행이 하나 이상 발견되면 종료 상태입니다. 그래서 여기에서 할 수 있습니다:
until
VNIC=$(
/bin/oci --profile "$USER" \
compute instance list-vnics --instance-id "$INSTANCEOCID" |
grep -oP 'ocid1.vnic[^"]+'
)
do
continue # or sleep 1 or other delay to avoid running again
# straight away.
done
답변2
var=$( command )를 사용하여 명령의 stdout 출력을 var에 저장하십시오. 따라서 귀하의 경우에는 다음과 같습니다.
VNIC=$( /bin/oci --profile $USER compute instance list-vnics --instance-id $INSTANCEOCID | grep -oP 'ocid1.vnic[^"]+' )