首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本内部扩展的全球化-我做错了什么?

脚本内部扩展的全球化-我做错了什么?
EN

Unix & Linux用户
提问于 2020-04-05 19:00:55
回答 1查看 952关注 0票数 2

因此,我试图使用交互式脚本来选择一系列文件。

最终目标是使用read命令,但为了演示,我手动分配了glob变量

代码语言:javascript
复制
#!/bin/bash
shopt -s extglob
# read -rp "Please enter a globbing string:"错误如下:Error /bin/ls: cannot access "/mnt/drive1/images/*/*/*2020_04_03_{06..18}.jpg": No such file or directory那么,在分配glob变量或将glob变量附加到我的路径时,这里遗漏了什么呢?解决方案:我找到了解决办法,但我不太清楚为什么bash <会给我想要的输出。\n' glob

# This will give me an error (See below)
glob=*2020_04_03_{06..18}.jpg
/bin/ls -la /mnt/drive1/images/*/*/${glob}

# While this will return the desired files
/bin/ls -la /mnt/drive1/images/*/*/*2020_04_03_{06..18}.jpg

错误如下:

A3

那么,在分配D4变量或将D5变量附加到我的路径时,这里遗漏了什么呢?

解决方案

我找到了解决办法,但我不太清楚为什么

A6

会给我想要的输出。

EN

回答 1

Unix & Linux用户

发布于 2020-04-06 00:36:12

您可以使用数组赋值,而不仅仅是变量。

代码语言:javascript
复制
shopt -s nullglob  ##: just in case there is non match for the glob.

glob=(*2020_04_03_{06..18}.jpg) ##: This will expand the glob * and brace expansion.

/bin/ls -la /mnt/drive1/images/*/*/"${glob[@]}"
  • 这应该适用于您的示例代码。
  • 当您决定将支撑展开中的数字替换为@kusalananda提到的一个变量时,问题就会出现,这个变量是关于展开顺序的。
  • 如果希望看到错误,则添加failglob shell选项,如果没有匹配模式,则退出非零。
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/578133

复制
相关文章

相似问题

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