2

含む変数(OUTPUT)があります

"Using pin #4 Data (40): 0x23 0x0 0x18 0x0 0x3b Temp = 24 *C, Hum = 35 %".

TempHumはどちらも0 ~ 100 です。

BASHではstring "Temp = " and "Hum = "、関連する番号 (「24」と「35」) をそれぞれの変数 TEMP と HUM に配置する方法を見つけます。

OUTPUT 変数の長さは変わる可能性があるため、文字列内の位置に基づいて TEMP 変数と HUM 変数を見つけることができません。

どうもありがとう

4

2 に答える 2

3
$ OUTPUT="Using pin #4 Data (40): 0x23 0x0 0x18 0x0 0x3b Temp = 24 *C, Hum = 35 %"
$ [[ "$OUTPUT" =~ Temp\ =\ ([0-9]*) ]] && TEMP=${BASH_REMATCH[1]}
$ [[ "$OUTPUT" =~ Hum\ =\ ([0-9]*) ]] && HUM=${BASH_REMATCH[1]}
$ echo $TEMP 
24
$ echo $HUM
35
于 2013-10-09T05:41:08.687 に答える
0

きちんとした代替ソリューション:

grep -oE " [0-9]+ " <<< $OUTPUT
于 2013-10-09T08:46:55.747 に答える