shell脚本+匹配单词而不使用echo

时间:2010-08-25 09:02:54

标签: ksh

以下测试语法是ksh脚本的一部分

   [[ $PARAM = TRUE ]] &&  [[ ` echo $LINE_FROM_FILE | grep -c Validation ` -eq 1 ]] && print "find Validation word"

我是否可以使用其他一些创意语法/解决方案/命令来验证LINE_FROM_FILE中是否存在验证字而不使用echo命令?

LINE_FROM_FILE =“123验证V125 tcp IP = 1.2.56.4”

备注:需要完全匹配验证字

利迪娅

3 个答案:

答案 0 :(得分:0)

您可以使用case执行此操作:

case $LINE_FROM_FILE in
    *Validation*)
        echo "found word Validation"
        ;;
    *)
        echo "did not find word Validation"
        ;;
esac

答案 1 :(得分:0)

您可以使用Parameter expansion删除所有内容,包括验证,并将其与参数的正常扩展进行比较。如果它们不相等,则参数包含验证

[[ "${LINE_FROM_FILE##* Validation }" != "${LINE_FROM_FILE}" ]]

(因为在验证之前和之后总是有空格,这些可以包含在模式中。我不知道在shell模式中匹配单词的开头和结尾的其他方法)

答案 2 :(得分:0)

[[ $PARAM = TRUE ]] &&  [[ "$LINE_FROM_FILE" == *Validation* ]] && print "find Validation word"