次のコマンドを実行する前に、文字列に一致するコマンドの応答を待たなければならない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
返す本物一致する行が 1 つ以上見つかった場合は終了状態です。だからここで行うことができます:
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[^"]+' )