如何在ksh脚本中使用正则表达式匹配字符串的一部分?
我的脚本中有一个字符串,可能是这样的:
/data/inform/far_proj/scripts/../SrcFiles/load_alfa_data.dat
我已经搜索过如何在KornShell中进行正则表达式,但我没有成功。我所拥有的是:我希望查看该字符串是否包含load_alfa_data
if [[ $FILENAME = @("load_alfa_data") ]]; then
...
fi
感谢您的帮助
答案 0 :(得分:1)
在ksh
中,您可以执行case
:
case "$FILENAME" in
*load_alfa_data*) echo "found load_alfa_data" ;;
*) echo "nope" ;;
esac
答案 1 :(得分:0)
内置==
命令中的[[
运算符是模式匹配运算符
if [[ $FILENAME == *load_alfa_data* ]]; then ...
您的模式@("load_alfa_data")
不包含任何通配符,因此它基本上是完全匹配字符串。
摆脱使用ALL_CAPS_VARS的习惯:有一天你会写PATH=/tmp/foo
,然后想知道为什么你的脚本坏了。