我有一个非常简单的bash代码,需要处理一个字符串。我使用regexp如下:
#!/bin/bash
copyFile() {
sourcePath=$1
targetPath=$2
sourceFileName=$([[ "$sourcePath" =~ ^(.+)\.(properties|xml|conf)$ ]] && echo ${BASH_REMATCH[1]})
sourceFileExtension=$([[ "$sourcePath" =~ ^(.+)\.(properties|xml|conf)$ ]] && echo ${BASH_REMATCH[2]})
echo "$sourceFileName, $sourceFileExtension"
}
copyFile "*.conf" "/opt/test"
当我回显$ sourceFileName的值时,我期望一个'*'。但是相反,它在执行目录中列出了我的文件。在其他情况下,它可以正常工作。
我做错了什么?
感谢一切!