在linux终端上执行以下命令:
ls application/js/{a*,b*,c*,d*,e.pocket-secure}将列出application/js目录中以a、b、c、d或e.ocket-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),也尝试了转义{},但都无济于事。
发布于 2012-12-15 13:13:06
当您在终端中键入它时,我怀疑您是在bash中。当您运行sh doit.sh时,您正在更改外壳的特征,这要么是因为bash处于兼容模式,要么是因为您正在使用dash之类的东西。试着做bash doit.sh。
发布于 2012-12-18 00:44:28
此语法仅适用于bash解释器您可以尝试使用此语法
#/bin/bash
ls application/js/{a*,b*,c*,d*,e.pocket-secure}和
chmod +x doit.sh
./doit.sh或
只需在shell上键入以下内容
bash doit.shhttps://stackoverflow.com/questions/13889499
复制相似问题