我正在尝试创建一个切换脚本,该脚本读取通过telnet获取的值,然后执行命令以将同一值更改为其他值。
if / then语句很简单:
if [ $(ID0Status) = "String1" ]
then
command1
elif [ $(ID0Status) = "String2" ]
then
command2
fi
在这里,检查ID0Status
以查看返回了什么字符串。我不确定的部分是如何实际获取该信息。要手动获取信息,请执行以下操作:
telnet localhost port
一旦我进入,我会输入:
get-status
此时,输出具有以下结构:
[
{
"id": "0"
"status": "String1"
},
{
"id": "1"
"status": "String2"
}
]
因此,我需要一种方法来找到status
的值,其中id
= 0
,返回字符串,并将其定义为ID0Status变量。
我从哪里开始?
答案 0 :(得分:1)
承认,您不想使用第三方工具:
首先,您应该一次在一个变量中获得一次telnet结果
telnetStatusResult=$(ID0Status)
然后,要为每对(id,status)对使用一行,可以这样使用tr和sed:
telnetStatusResult=$(ID0Status |tr -d '\n' |sed -e 's/,/\n/g')
编辑=>此脚本行的说明:
最终,您可以提取每个ID的状态,并执行相应的命令,例如
telnetStatusInfoSet=$( echo "$telnetStatusResult" |sed -e 's/^.*id[ ":]*\([^"]*\)".*status[ ":]*\([^"]*\)".*$/\1;\2/' )
编辑=>此脚本行的说明:
这样,您将得到类似的东西:
0;String1
1;String2
然后,您可以循环这些对,并执行相应的操作。
让我知道是否足以解决您的问题。