【发布时间】:2010-09-17 15:37:06
【问题描述】:
我正在尝试编写一个简单的 bash 脚本,但似乎有问题,我正在命令行上测试以下内容:
DATE="2010-09-{10,11}"
result=`\ls *ext.$DATE.Z`
并导致 ls: cannot access *ext.2010-09-{10,11}.Z: No such file or directory
但是如果我执行这个:
result=`\ls *ext.2010-09-{10,11}.Z`
完美运行...
我什至尝试从 DATE 参数中删除引号,但这不是问题,bash 手册没有帮助,我做错了什么?不是应该执行参数替换并将其传递给我的命令吗?
我认为我应该避开 $ 符号,但这也没有用。
编辑 - 添加的目的说明
我想要完成的是用所有匹配给定模式 (*ext.2010-09-{10,11}) 的文件名填充变量 result,我知道我可以解决这个问题使用 for 循环,但我考虑过使用花括号来缩短。
【问题讨论】:
-
你为什么要像
\ls一样运行它?别名不会延续到脚本中。
标签: bash command-line parameters shell