从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)并尝试转义{}无效。
答案 0 :(得分:2)
当您在终端中输入时,我怀疑您在bash
。当您运行sh doit.sh
时,您正在更改shell的特征,因为bash
处于兼容模式,或者因为您使用的是dash
。尝试bash doit.sh
。
答案 1 :(得分:1)
这种语法只适用于bash解释器,你可以试试这个
#/bin/bash
ls application/js/{a*,b*,c*,d*,e.pocket-secure}
和
chmod +x doit.sh
./doit.sh
OR
只需在shell上输入
即可bash doit.sh