我读到在 Bash 中双引号所有变量扩展是最佳实践。我还读到不能*
在双引号变量扩展后立即使用 shell glob(通配符())。当人们想要使用从变量扩展而来的正则表达式模式的值时,这些情况会发生冲突。
我有时想要将正则表达式与通配符结合使用的原因是为了让我的正则表达式在我的个人品味中保持最小、更整洁。
我将 phpmyadmin 下载到我的文档根目录并解压缩它,但我无法mv
通过我放入变量的正则表达式模式重命名它,并且在扩展其变量时可用。这是确切的跟踪:
userName@compName:/var/www/html# ll
total 11336
drwxr-xr-x 3 root root 4096 Feb 14 07:04 ./
drwxr-xr-x 3 root root 4096 Feb 14 06:56 ../
-rw-r--r-- 1 root root 612 Feb 14 06:57 index.nginx-debian.html
drwxr-xr-x 12 root root 4096 Dec 23 08:50 phpMyAdmin-4.7.7-all-languages/
-rw-r--r-- 1 root root 11589684 Dec 23 14:08 phpMyAdmin-latest-all-languages.zip
userName@compName:/var/www/html# echo $pma
[pP][hH][pP][mM][yY][aA][dD][mM][iI][nN]
userName@compName:/var/www/html# mv "$pma"*/ phpmyadmin/
mv: cannot stat '[pP][hH][pP][mM][yY][aA][dD][mM][iI][nN]*/': No such file or directory …
Run Code Online (Sandbox Code Playgroud)