I的一部分具有產生以下輸出的腳本:分配一個命令輸出給一個變量(bash)的
[RESPONSE] code = 211 description = Domain name not available queuetime = 0 runtime = 0.009
我需要只分配code = 211
部分給一個變量。我將如何做到這一點?
I的一部分具有產生以下輸出的腳本:分配一個命令輸出給一個變量(bash)的
[RESPONSE] code = 211 description = Domain name not available queuetime = 0 runtime = 0.009
我需要只分配code = 211
部分給一個變量。我將如何做到這一點?
如果您想保存code = 211
一個變量說var
做到這一點:
$ var="$(./your_script | sed -E 's/.*(code = [[:digit:]]+).*/\1/')"
$ echo "$var"
code = 211
相反,如果你想給腳本的結果分配211 code
:
$ eval "$(./your_script | sed -E 's/.*(code = [[:digit:]]+).*/\1/;s/ //g')"
$ echo "$code"
211
注意
s/.*(code = [[:digit:]]+).*/
保留結果的code = number
部分s/ //g
刪除周圍=
的空間,使code=number
傳遞給eval
#Assuming there is space between [response] and code.Seems there is from your example.
var=$(./yourScript.sh |awk '{print $2,$3,$4}')
echo $var
code = 211
一個替代方案是'EVAL「 $(./腳本| awk的 '{printf的 「%s =%s」 時,$ 2,$ 4}')。「' – sjsam
這確實假定輸出具有固定的格式,如果不是的話,這是不行的你。可以使用awk'sub'解決.nbd。 –
你的意思是商店'碼= 211'在一個變量說'var' – sjsam
而且輸出格式是否爲常量?到目前爲止還有哪些努力? – sjsam
嗨。不,我不需要存儲輸出。輸出是域檢查的結果。代碼= 211表示該域不可用。當域可用於代碼= 210時,代碼會更改。哦,格式是肯定的。 – turnic