我在bash脚本中非常粗暴,我试图检测字符串中的子字符串索引,返回-1表示找不到子字符串
我使用以下代码检测给定uaeName字符串中“Disc 1”的索引:
strindex() {
x="${1%%$2*}"
[[ $x = $1 ]] && echo -1 || echo ${#x}
}
index=`strindex "$uaeName" "Disk 1"`
echo "Disk 1 $index"
当uaeName中不存在“磁盘1”且uaeName包含括号时,会出现问题。
当字符串$ uaeName为
时,它运行良好HydroZone v1.0.0 (1994)(Skull Army)(SW).adf
Disk 1 -1
但是只要$ uaeName包含括号,它就会失败:
HydroZone v1.0.0 (1994)(Skull Army)(SW)[Blitz BASIC].adf
Disk 1 56
不知何故,uaeName中的括号[]似乎被误解了,我该如何纠正这个问题?
感谢您的回答
答案 0 :(得分:1)
引用strindex函数中的变量:
[[ "$x" = "$1" ]] && echo -1 || echo "${#x}"
答案 1 :(得分:0)
那应该是[[ "$x" = "$1" ]]
。