linux - sh 脚本转义

标签 linux sh

从 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/

相关文章:

php - .htaccess:如何保持相同的 URL,但在服务器上显示不同的页面

Android 模拟器在缩放到实际大小时显示很奇怪

linux - shell bash 脚本 - 上传一个大的 tar 文件,重试?

android - 如何在android shell中制作一行for循环

bash - 使用 bash 脚本将一些行写入文件

linux - 如何使用 NASM Assembly 忽略输入中的换行符?

linux - 我不允许在文件名中使用什么字符序列?

sh - 如何通过sudo用户执行shell脚本

linux - 在 if 语句中使用 pgrep 命令