文件名包含空格的 Shell 脚本问题

2023-11-23

我知道处理文件名中空格的一种技术是用单引号将文件名引起来:“'”。

为什么下面的代码“echo.sh”可以在包含带空格的文件名的目录上工作,但是程序“ls.sh”却不起作用,唯一的区别是“echo”被“ls”替换了?

echo.sh

#!/bin/sh
for f in *
do
echo "'$f'"
done

Produces:
'a b c'
'd e f'
'回声.sh'
'ls.sh'

但是,“ls.sh”失败了:

#!/bin/sh
for f in *
do
ls "'$f'"
done

Produces:
ls: 无法访问 'abc': 没有这样的文件或目录
ls: 无法访问 'd e f': 没有这样的文件或目录
ls:无法访问“echo.sh”:没有这样的文件或目录
ls:无法访问“ls.sh”:没有这样的文件或目录


您实际上添加了多余的“'”(您的 echo 调用显示)

尝试这个:

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

文件名包含空格的 Shell 脚本问题 的相关文章

  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 独特的 Linux 文件名,可按时间排序

    以前我用的是uuidgen http man7 org linux man pages man1 uuidgen 1 html创建唯一的文件名 然后我需要通过 bash 脚本按日期 时间迭代该文件名 从那时起 我发现简单地通过 ls l 循
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • “alias: =: not found”,且未定义别名,在 .bashrc 中使用“alias ll = 'ls -l'”

    我在 Mac OSX 上并尝试在 bashrc 中添加一些基本别名 例如alias ll ls l 我在 bash profile 中获取了 bashrc 启动时它识别出我在 bashrc 中的函数 但是 每次添加别名然后尝试启动它时 我都
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 如何在 Bash 中删除字符串的第一部分?

    该代码将给出第一部分 但是如何删除它并获取没有第一部分的整个字符串 echo first second third etc cut d f1 你应该看看info cut 这将解释什么f1 means 实际上我们只需要第二个字段之后的字段 f
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • Mac psql/readline - 库未加载

    我正在 Mac Sierra 10 12 3 上工作 并且尝试通过以下方式访问 PostgreSQL 数据库psql命令 但它引发了错误 dyld Library not loaded usr local opt readline lib
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

    当我执行没有管道或文件重定向的 git log oneline 命令时 它会提供有关 HEAD 位置和分支的信息 下面示例中的 master git log oneline color never 8bc8511 HEAD gt day 2
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 批量检测系统是32位还是64位

    有谁知道如何创建一个批处理文件 如果是 64 位系统 可以对一个程序进行 shell 处理 如果是 32 位系统 则可以对另一个程序进行 shell 处理 检查 PROCESSOR ARCHITECTURE being x86 if PRO
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • 如何运行 bash 压缩脚本?

    有没有一种方法可以直接运行带有 参数 的压缩bash脚本 而无需将其解压缩到文件中 然后运行解压缩的文件 例如 我需要使用一些给定的参数执行 setup mysql gzip 压缩脚本 n wordpress locahost 而不先解压缩
  • HBase Shell 日志记录

    使用 HBase shell 时 我收到大量日志记录 包括 INFO 和 DEBUG 消息 虽然这对于学习 HBase 内部结构来说很有趣 但它非常冗长并且可能会掩盖输出 我尝试过以多种不同的方式更改日志记录级别 包括所描述的here ht
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 将 apache documentRoot 设置为符号链接(以便于部署)

    我们正在寻找一种将 Apache DocumentRoot 指向符号链接的方法 例如 文档根目录 var www html finalbuild Finalbuild 应该指向 home user build3 之类的文件夹 当我们将新构建
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to

随机推荐

  • Angular 2 中的全局管道

    我想让管道在所有应用程序中可用 根据我在 Angular 文档和互联网中读到的内容 如果我在根模块声明中声明一个管道 它会使该管道在所有应用程序中可用 我有这个AppModule代码 NgModule imports BrowserModu
  • 为什么 Google Play 商店没有显示应用程序设备不可用的原因?

    我是移动应用程序开发人员 也从事本机和 Phone Gap 方面的工作 我在 Phonegap 中构建了一个应用程序 该应用程序在设备中完美运行 但在某些选项卡中无法运行 我在这里找到的Google Play 商店政策 但是为什么他们没有显
  • 如何将项目添加到 magento 面包屑中

    我想在用户在 magento 前端导航我自己的模块时显示面包屑 该网站已经有适当的面包屑代码 可以根据标准 magento 面包屑在其他地方使用 我需要在模块中做什么来指定当前的面包屑路径 我希望能够以编程方式执行此操作 而不是在面包屑 p
  • postgresql 中不存在函数 min(uuid)

    我使用 sqoop 将表从 Postgres 导入到 hdfs 我的表有 uuid 字段作为主键 我的命令 sqoop 如下 sqoop import connect jdbc postgresql localhost 5432 mydb
  • R reshape2 中的cast()调用的自定义聚合函数出错

    我想使用 R 将具有非唯一行名称的表中的数字数据汇总到具有唯一行名称的结果表 并使用自定义函数汇总值 汇总逻辑是 如果最大值与最小值之比reshape2包裹 example table with non unique row names t
  • R 中的情感分析(不使用 tm.plugin.tags)

    我正在使用 R 版本 3 0 2 并已安装该软件包tm 之前我还加载了一个名为tm plugin tags 为了衡量文本语料库是正面还是负面 我使用了以下方法 library tm library tm plugin tags pos lt
  • eclipselink/Moxy:基于类型的继承和属性名称重载

    我面临着使用 MOXy 的 JAXB 实现和外部元数据绑定文件进行继承和多态性的编组 解组问题 我无法控制 XML 文件或模型类 模型内部有多个继承其他 DTO 类的类 这是我正在工作的环境的示例 这个示例仅出于某些语法目的 真实的环境涉及
  • 启动定位策略

    我通过 GPS 定期接收位置更新 问题是距离第一次位置更新发生的时间 太长了 当用户在建筑物内时 情况会变得更糟 因此我正在寻找一些策略来改善启动时间 目前我不使用getLastKnownLocation但我会 我开始读书深入了解位置得到一
  • PHP 7.2 中 mcrypt_encrypt 的完全替代方案

    由于 PHP 7 2 不再支持 mcrypt crypt 我正在尝试精确替代该函数 在阅读了许多 SO 答案后 我发现以下代码使用 PHPSECLIB 但它没有生成与 mcrypt 一样的精确加密文本 function encryptRJ2
  • XAML:如何仅在设计模式下更改背景颜色?

    我有一个具有白色文本前景色和透明背景色的控件 稍后此用户控件将被添加到带有真实背景颜色的不同控件中 然而在设计过程中 在VS 2010中控制白色背景上的白色前景 我明显看不到任何东西 无论如何 要在设计时定义不同的颜色吗 我已经尝试过这个
  • 生成二维数组的梯度图

    我有一个二维数组 它将每个点的属性值存储为其元素 f x y f x y 现在我想找到这个数组的梯度 我调查了np gradient但它只给出两个数组作为返回 第一个在 x 方向上具有导数 第二个在 y 方向上具有导数 我想了解如何使用此方
  • 如何在按下按钮时继续执行工作?

    我想在按下按钮时使用 Java 继续执行工作 当释放按钮时 工作应该停止 像这样的东西 Button is pressed for int i 0 i lt 100 i count i print count 我怎样才能实现这个目标 One
  • TypeScript 中必需的泛型类型与推断的泛型类型

    以下泛型类型之间有什么区别 type FnWithRequiredParam
  • 如何获取 Solr 中最后一个索引记录?

    我想知道如何获取 搜索 Apache Solr 中的最后一个索引记录 当现有记录更新时 它会转到所有记录的末尾 所以我想获取最后一个索引记录 thanks 您可以将 时间戳 字段添加到 Solr 架构中 该字段在添加时将当前日期 时间放入记
  • 如何读取带有 Alpha 通道的 gif 动画

    在 MATLAB 中对 gif 动画进行一些测试时 我意识到我无法读取 gif 的透明度 Example gif的原始来源 If I do img cmap imread Finnandjake gif img是 4D 具有冗余的第三维 奇
  • Joi 验证正则表达式或模式

    我想加入使用在变量中定义的正则表达式模式 我有一个变量pattern其中包含正则表达式 IE pattern 0 9 7 0 9 1 这个模式发送到 Joi 模块并想要确认 module exports save body match Jo
  • 无 RDP 时自动发送密钥失败

    我有一个虚拟机 我希望在其上运行自动化任务 即自动化任务在实际虚拟机上运行 VM 是 Windows 2008 服务器 我已将该任务添加到任务计划程序中 当我通过 RDP 登录到计算机时 我可以通过右键单击 运行 来运行该任务 但是 当我的
  • switch语句:default必须是最后一种情况吗?

    考虑以下switch陈述 switch value case 1 return 1 default value fall through case 2 return value 2 该代码可以编译 但它对于 C90 C99 有效 定义的行为
  • 将大图像加载到位图中?

    我正在尝试制作一个显示来自相机的图像的基本应用程序 但是当我尝试使用 sdcard 加载 jpg 时BitmapFactory decodeFile 它返回 null 它不会给出我觉得奇怪的内存不足错误 但完全相同的代码在较小的图像上运行良
  • 文件名包含空格的 Shell 脚本问题

    我知道处理文件名中空格的一种技术是用单引号将文件名引起来 为什么下面的代码 echo sh 可以在包含带空格的文件名的目录上工作 但是程序 ls sh 却不起作用 唯一的区别是 echo 被 ls 替换了 echo sh bin sh fo