我有一个正在运行的SNMP pass
脚本,由于某种原因(我尚不了解),脚本中echo
的其他使用导致脚本无法执行。现在我的确切问题是,我需要从变量REQ
中获取一个子字符串,并将其分配给另一个变量。以下是一种理论上可行的方法,但是由于使用echo
而在我的情况下不起作用。
DGROUP_NODE=`echo $REQ | cut -d. -f3`
还有另一种方法来执行此操作而不中断正在读取脚本的内容吗?我注意到printf
也往往有相同的问题,尽管不那么频繁。 (此问题还阻止我使用echo
或printf
调试代码...)
注释:
当echo
导致执行脚本出现问题时,不会返回任何错误(关于脚本)。我只得到No Such Instance currently exists at this OID
,它告诉我脚本未运行,导致我的OID树无法构建。
如果我在SNMP之外运行脚本,则可以正常运行。
答案 0 :(得分:1)
例如,如果我只想要PEN:
TREE=.1.3.6.1.4.1.8072.2.255
CHOP=.1.3.6.1.4.1.
PEN=${TREE##*$CHOP} # remove $CHOP from beginning (## = longest match from beginning)
PEN=${PEN%%.*} # keep everything before first period (%% = longest match from end)
输出:
8072
有关此方法的更多信息:extract part of a string
答案 1 :(得分:0)
使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="up">
Up
</button>
<div id="container">
<div id="inner">
</div>
</div>
<button id="down">
Down
</button>
,然后再次运行。我确定问题是set +x
为空。
答案 2 :(得分:0)
像这样在代码中用$括住echo:
DGROUP_NODE=$(echo $REQ | cut -d. -f3)