首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sh脚本转义

问sh脚本转义
EN

Stack Overflow用户
提问于 2012-12-15 13:06:42
回答 2查看 75关注 0票数 0

在linux终端上执行以下命令:

代码语言:javascript
复制
 ls application/js/{a*,b*,c*,d*,e.pocket-secure}

将列出application/js目录中以a、b、c、d或e.ocket-secure开头的所有文件。

如果我将该命令放在doit.sh中并执行:

代码语言:javascript
复制
sh doit.sh

我得到了:

代码语言:javascript
复制
ls: cannot access application/js/{a*,b*,c*,d*,e.pocket-secure*}: No such file or directory

我认为{}混淆了shell解释器,但我尝试了引号(single|double),也尝试了转义{},但都无济于事。

EN

回答 2

Stack Overflow用户

发布于 2012-12-15 13:13:06

当您在终端中键入它时,我怀疑您是在bash中。当您运行sh doit.sh时,您正在更改外壳的特征,这要么是因为bash处于兼容模式,要么是因为您正在使用dash之类的东西。试着做bash doit.sh。

票数 2
EN

Stack Overflow用户

发布于 2012-12-18 00:44:28

此语法仅适用于bash解释器您可以尝试使用此语法

代码语言:javascript
复制
#/bin/bash
ls application/js/{a*,b*,c*,d*,e.pocket-secure}

和

代码语言:javascript
复制
chmod +x doit.sh
./doit.sh

或

只需在shell上键入以下内容

代码语言:javascript
复制
bash doit.sh
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13889499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档