请咨询我的代码有什么问题,(我在OS Linux和solaris上运行这个代码)
我不明白:
"file ended with .tmp"
例:
我需要validation$ FILE以.tmp或.old等结尾…
用下面的例子代码设置参数:FILE = hosts.tmp
所以我希望grep会匹配“.tmp ”,因为.tmp是最后一个字符
代码(ksh脚本)
TOKENS=".tmp .old .previous -log temp ,TEMP -OLD previos" FILE=hosts.tmp for TOKEN in ` echo $TOKENS ` do [[ ` echo $FILE | grep -c '$TOKEN$' ` -eq 1 ]] && echo "file ended with $TOKEN" done
你的代码有两个问题:
1)作为TOKEN得到传递给grep你需要逃避-
像这样:
TOKENS=".tmp .old .previous \-log temp ,TEMP"
2)你正在使用单引号,这意味着variables不被扩展,用引号replace:
[[ ` echo $FILE | grep -c "$TOKEN$" ` -eq 1 ]] && echo file ended with $TOKEN