防止 bash 脚本中的通配符

2023-12-12

我正在尝试编写一个对选定文件进行操作的脚本。

#!/bin/bash
#ytest
lastArgNo=$#
sPattern=${!lastArgNo}
echo "operating on $sPattern"
#do operation on $sPattern
for sFile in $sPattern do
    #do something with each file
done

如果我开始这个脚本 我得到的参数 *.JPG

operating on IMG_1282.JPG

这是为模式 *.JPG 找到的最后一个文件,并且仅处理该文件。我需要命令行上给出的实际文件模式。提前致谢。


您无法获得实际的模式:shell 在启动脚本之前已经对其进行了扩展。您确实获得了实际文件作为参数,因此您应该做的是迭代所有参数:

#!/bin/bash
echo "operating on $# files"
for file; do
    # do something with each "$file"
done

您所做的是将 lastArgNo 设置为参数的数量,使用间接变量扩展将 sPattern 设置为最后一个参数的值。如果你这样做了arg=1; sPattern=${!arg}您可以将 sPattern 设置为第一个参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 bash 脚本中的通配符 的相关文章

随机推荐

  • Hadoop 中的 setJarByClass()

    在 Hadoop 算法的驱动程序方法中的某个时刻 我们将作业链接到设置为 Mapper 和Reducer 的类的引用 例如 job setMapperClass MyMapper class job setReducerClass MyRe
  • 如何将 Python2 中的 all: print "string" 替换为:Python3 中的 print("string")? [复制]

    这个问题在这里已经有答案了 正如标题所说 如何将 Python2 中的 all print string 替换为 Python3 中的 print string I really希望他们使这一功能向后兼容 官方推荐使用 2to3 py 脚本
  • 使用实体框架自引用树的最有效方法

    所以我有一个 SQL 表 基本上是 ID ParentID MenuName Lineage Depth 最后两列是自动计算的 以帮助搜索 因此我们现在可以忽略它们 我正在创建一个具有多个类别的下拉菜单系统 不幸的是 我认为 EF 不能很好
  • 使用 xslt 排序对给定顺序进行排序

    我在用着
  • 从 Firebase 获取一个值并将其更新为当前值 + 1

    所以是的 标题有问题 一些信息 这是我的 Firebase 数据库的样子 这是当前的代码 export function updateQTY barcode database ref items barcode update qty cur
  • 如何检测无符号整数溢出?

    I was writing a program in C to find all solutions of ab c where a b and c together use all the digits 0 9 exactly once
  • 替换 pandas dataframe 列中的前 n 个元素

    我想更换第一个n我的数据框中的一列元素与我保存的另一个 pd series 举个例子 category price store testscore 0 Cleaning 11 42 Walmart NaN 1 Cleaning 23 50
  • R - 给定奥尔森时区的 UTC 到 LOCAL 时间

    我有 1974 2013 年的时间序列数据 其中有一列为 datetimeUTC YYYY MM DD hh mm 0000 一列为 Olson 格式的时区 例如 加拿大 太平洋 加拿大 东部 我可以将整个 UTCdatetime 列转换为
  • ListView WP8 中的增量加载

    我读过有关如何在滚动到列表视图底部时进行增量加载的文章 以及如何在滚动到列表顶部时实现延迟加载的文章 当用户到达顶部时 我想将更多项目添加到列表顶部 我们有什么办法可以实现这一目标吗 为此找到了解决方案 旋转两个控件 对于例如 gt
  • 2个php.ini文件

    我发现 当我在终端上输入以下内容时 php i grep php ini 我得到输出 加载的配置文件是 etc php5 cli php ini 然而 从phpinfo 我看到 加载的ini文件是 etc php5 apache2 php
  • Facebook API 限制

    我正在使用应用程序中的 Facebook Graph 和 FQL API 经过 OAuth 身份验证 我在文档中找不到有关速率限制 节流的任何内容 通常 我期望类 用户有某种限制 查看 Facebook 应用程序页面 Insigths gt
  • 如何使用node js将消息从Web服务器推送到浏览器

  • 为 Vaadin 8 Grid 实现列渲染器

    The 瓦丁框架指南有一个描述如何使用列渲染器的页面 in a 瓦丁网格 And 本页描述了渲染器的实现 但一切都太短暂了 我想实施一个InstantRenderer补充 Vaadin 8 1 中添加的部分 java time 渲染器集 添
  • Firebase RecyclerView:未连接适配器,跳过片段布局

    我有一个包含 3 个选项卡的 TabLayout 的活动 我正在尝试加载基于 Firebase 中的动态数据的 recyclerview 但 recyclerview 根本没有填充任何视图 我不确定它是否与 FragmentSectionP
  • 为什么在java中枚举被声明为 Enum> [重复]

    这个问题在这里已经有答案了 可能的重复 java 枚举定义 更好地表述问题 不被视为重复 如果 Enum 声明没有递归部分 Java 中会有什么不同 如果语言设计者简单地使用 Enum 这会对语言产生什么影响 现在唯一的区别是有人会写 A
  • 商业(付费)iPhone 应用程序是否必须向 Google 地图支付许可费用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我知道商业网站会发生这种情况 所以我想知道使用 MapKit 的商业 iPhone 应用程序 尤其是那些产生大量流量的应用程序 是否也需要从 Google 地图获得任何类型的许可 我
  • 隐藏相机预览但仍收到预览回调

    我想在我的应用程序中显示过滤后的相机预览 我为此使用 Camera setPreviewCallback 我设法处理回调数据并在 OpenGL 视图中显示过滤后的图像 但我不知道如何隐藏原始相机预览并仍然接收预览回调 使表面视图 消失 或
  • Matlab 与 Mathematica,特征向量?

    function H calcHyperlinkMatrix M r c size M H zeros r c for i 1 r for j 1 c if M j i 1 colsum sum M 2 H i j 1 colsum j e
  • Expressjs bodyParser 和 connect-form

    我正在上传图像连接形式 但如果我使用它就不起作用bodyParser 相反 如果我不使用 bodyParser 我就无法上传文件 我怎样才能让他们一起玩 这是我的配置 app configure function app register
  • 防止 bash 脚本中的通配符

    我正在尝试编写一个对选定文件进行操作的脚本 bin bash ytest lastArgNo sPattern lastArgNo echo operating on sPattern do operation on sPattern fo