从 linux 终端命令:
ls application/js/{a*,b*,c*,d*,e.pocket-secure}
将列出 application/js 目录中以 a,b,c,d 或 e.pocket-secure 开头的所有文件。
如果我将该命令放入 doit.sh 并执行:
sh doit.sh
我得到:
ls: cannot access application/js/{a*,b*,c*,d*,e.pocket-secure*}: No such file or directory
我认为 {} 混淆了 shell 解释器,但我尝试引用 (single|double) 并尝试转义 {} 但无济于事。
最佳答案
当你在终端输入它时,我怀疑你在 bash
中。当您运行 sh doit.sh
时,您正在更改 shell 的特性,这要么是因为 bash
处于兼容模式,要么是因为您正在使用类似 dash< 的东西
。尝试执行 bash doit.sh
。
关于linux - sh 脚本转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13889499/