将文件名分配给 shell 中的变量

2023-12-13

我正在尝试编写一个脚本,它的功能比我要向您展示的功能更复杂一些,但我知道问题出在这部分。

我希望通过以下方式将目录中文件列表的每个名称分配给一个变量(同一变量,一次一个)for循环,然后用这个在循环内部做一些事情,看看是什么意思:

for thing in $(ls $1);
do
    file $thing;
done

编辑:假设这个 scrypt 名为 Scrypt,我有一个名为 Folder 的文件夹,里面有 3 个文件,名为 A、B、C。当我写下以下内容时,我希望它在终端上显示:

./scrypt Folder

下列:

A: file
B: file
C: file

通过上面显示的代码,我得到了:

A: ERROR: cannot open `A' (No such file or directory)
B: ERROR: cannot open `B' (No such file or directory)
C: ERROR: cannot open `C' (No such file or directory)

那就是问题所在


一种方法是使用通配符扩展而不是ls, e.g.,

for filename in "$1"/*; do
    command "$filename"
done

这假设$1是其中包含文件的目录的路径。

如果您只想对纯文件进行操作,请在后面添加一个检查do沿着以下思路:

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

将文件名分配给 shell 中的变量 的相关文章

  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • 如何在不使用 MacPorts 或 Fink 的情况下在 OS X Leopard 上安装 lxml?

    我过去曾多次尝试过此操作并遇到问题 有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法 并且绝对有效 最好有完整的 1 2 3 步骤来下载和构建每个依赖项 感谢 Twitter 上的 jesse
  • 从文件中随机采样行

    我有一个大约 40gb 和 1800000 行的 csv 文件 我想随机采样 10 000 行并将它们打印到一个新文件中 现在 我的方法是将 sed 用作 sed n vars lt input txt gt output txt Wher
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我
  • Shell 执行:时间与 /usr/bin/time

    当 bash zsh 执行以下操作时会发生什么 usr bin time l sleep 1 1 00 real 0 00 user 0 00 sys 516096 maximum resident set size 0 average s
  • 水银大号

    你知道如何让 Quicksilver 在屏幕上显示大量的大字体吗 通过点击 然后输入自由文本 选择 操作 下的 查看大字体 并按 Enter 键 好吧 有谁知道一种以编程方式做到这一点的方法吗 另外 quicksilver 是必需的还是内置
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些
  • 在 NodeJS 中运行 Conda 命令

    我无法使用以下命令运行 C onda 命令exec与我的 NodeJS 应用程序 var conda path miniconda3 bin conda var cmd conda path init bash conda path act
  • Java:如何读取一个 int 的多个扫描仪值

    我一直在试图弄清楚如何根据从获得的输入来计算面积和体积Scanner班级 该练习包括一次接收多对半径和高度 我已经编写了这些方法并对其进行了测试 所以这些方法应该有效 我遇到的问题是当我想使用 扫描仪 的输入并使用它们进行计算时 这是我的代
  • T-SQL 表名别名

    在我的 T SQL 脚本中 我多次引用相同的长表名称 我在不同的表上使用这个查询 有没有办法通过变量引用表名 如果是这样 我可以简单地在脚本将使用的顶部声明一个变量 只需设置值 我就可以在各种表上运行它 而无需在脚本中进行更改 有几个选择
  • R中的for循环和if函数

    我正在用 R 中的 if 函数编写一个循环 表格如下 ID category 1 a 1 b 1 c 2 a 2 b 3 a 3 b 4 a 5 a 我想使用 for 循环和 if 函数添加另一列来计算每个分组的 ID 如下所示的计数列 I
  • bash "&" 不打印 "[1]+ Done "

    我在 bashrc 中调用一个脚本来打印打开终端时收到的新消息数 我希望该调用在访问网络时是非阻塞的 有时需要几秒钟 这意味着我无法使用终端直到完成 但是如果我输入 mailcheck 在我的 bashrc 中 它工作正常 但然后打印一个空
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 编写一个 shell 脚本,find-greps 并在 1 行中输出文件名和内容

    要查看所有包含 abc 的 php 文件 我可以使用这个简单的脚本 find name php exec grep l abc 我可以省略 l 并且提取部分内容而不是文件名作为结果 find name php exec grep abc 我
  • 变量的多个值介于 0 和数字序言之间

    所以我一直在尝试自学序言 我认为我进展顺利 然而 我有点坚持我正在尝试的这一种方法 toN N A A 等于 0 到 N 1 之间的整数值 按升序生成 所以 toN 5 A 将是 A 0 A 1 A 2 A 3 A 4 我对序言还很陌生 所
  • 在 Bash 中从文本文件创建数组

    脚本采用 URL 解析它的所需字段 并将其输出重定向以保存在文件中 file txt 每次找到字段时 输出都会保存在新行中 file txt A Cat A Dog A Mouse etc 我要拿file txt并在新脚本中从中创建一个数组
  • 如何从另一个类访问变量而不创建新对象

    我过长的标题说明了一切 我希望能够从另一个类访问变量而不创建新对象 目前我知道如何访问另一个类的变量的唯一方法是 Control control new Control int dirtCount control dirtCount 然而
  • 循环内声明的变量在循环的每次迭代中保持值

    我无法确定这是一个错误还是一个功能 For i 0 To 4 Dim strTest As String If i 0 Then strTest test value End If Console WriteLine strTest Nex
  • 批处理 - 将 dir 命令的输出存储到变量 - 目录列表中

    我需要将整个目录列表存储到一个变量中 然后将所述变量作为参数传递给另一个脚本 直接或首先将 dir 的输出存储到文本文件中 然后执行如下操作 dir path todir gt temp txt set p VAR
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像

随机推荐

  • R中删除文件夹及其子文件夹中的文件

    在 R 中 我试图删除文件夹及其子文件夹中的所有文件 但是 我想保持文件夹完好无损 最有效的方法是什么 fold lt C some path here get all files in the directories recursivel
  • 如何为单个绘图实例创建两个图例对象?

    我使用以下示例代码生成条形图 import numpy as np import matplotlib pyplot as plt x np linspace 0 5 5 y np exp x w x 1 x 0 colors blue i
  • 如何从命令提示符编译 servlet?

    我想编译一个非常基本的servlet从命令提示符 但它总是不成功 编译器告诉我以下内容 error package javax servlet does not exist 我用谷歌搜索了解决方案 发现我需要包括servlet jar库到我
  • 鼠标光标跳转到 IE 文本输入字段中字符串的开头

    当我单击其中包含文本的文本字段并将焦点设置到字符串的末尾 大多数人通常会这样做 时 光标的焦点会跳转到字符串的开头 这只发生在 IE 中 该应用程序是带有 jquery 和 javascript 的 MVC 2 如何调试这一行为 我不能使用
  • 如何迭代 JSONObject?

    我使用一个名为的 JSON 库JSONObject 如果需要的话我不介意切换 我知道如何迭代JSONArrays 但是当我解析来自 Facebook 的 JSON 数据时 我没有得到一个数组 只有一个JSONObject 但我需要能够通过其
  • 根据声音相似度确定弦之间的距离

    两个单词之间相似性的定量描述是基于它们的发音 发音 类似于编辑距离吗 我知道 soundex 给了相同的 id发音相似词 但据我理解 它不是词之间差异的定量描述 from jellyfish import soundex print sou
  • 删除源文件后,FileInputStream 仍然可以读取

    我在android中遇到了一个很奇怪的问题 在我的应用程序中 我将从缓存目录上传文件 如果用户在我的应用程序上传文件时使用诸如 cleanmaster 之类的清洁应用程序来清除我的应用程序的缓存目录 则所有文件都会被删除 但上传任务根本不会
  • 如何检测 Perl 中的空行?

    在 Perl 中如何检查一行 值 是否为空行 或其他 检查它而不是使用 的好方法 我想这样编码 if eq 检查当前行是否为空行 没有任何字符 x 0 我用下面的问题解决方案更新了一些代码 My test txt用于解析 constant
  • 从 SQL Server 表生成 INSERT 语句

    我有一个包含 330 万条记录的表 并且不想将整个内容从开发复制到生产 在客户端控制的计算机上并且无法使链接服务器正常工作 我只想复制其中 300 条左右的记录 如何生成 300 条插入语句 我想要插入的选择 SQL 是 select fr
  • 如何在 Windows 7 中查找已安装应用程序的 UpgradeCode 和 ProductCode

    我的机器上安装了一个应用程序 我也有它的源代码 但不知何故该应用程序的 ProductCode 和 UpgradeCode 被更改了 现在我想获取此已安装应用程序的 UpgradeCode 和 ProductCode 我觉得必须有一些工具可
  • 如何利用混淆矩阵的值绘制ROC曲线?

    考虑我有一个像这样的分类器A其分类结果如下表 TP TN FP FN A 225 100 175 100 TP 为真阳性 TN 为真阴性 FP 为误报 FN 为假阴性 如何绘制ROC曲线 我知道 我可以定义一个变量 并尝试根据 A 来预测它
  • 嵌套gridview获取父行

    我正在使用嵌套 GridViews 其中的每一行gridview有子gridView 我在用行数据绑定事件父网格视图 到绑定子网格视图 我的问题是 如何获取子 gridView 上父 GridView 的密钥行数据绑定 Event 下面是示
  • document.getElementById insideHTML 不显示

    这应该是一件很容易做的事情 但它不会返回任何东西 函数 love 应该启动 得到一个简单的数字提示 并吐出使用该起始数字的一些项目的列表 警报框正确显示了我所期望的内容 但我希望它显示在屏幕上 这只是我所追求的一小部分 但它是它的核心 IE
  • 滚动后的 div(不是位置:固定)

    我前段时间找到过 现在找不到了 我想找到像苹果商店里的购物车这样的东西 它是一个既不绝对也不固定的div 例如 假设它位于屏幕的中心 只有当你向下滚动时 它才会跟随滚动而不是消失 当它到达浏览器标题的边框时 我不确定我是否清楚 我已经搜索过
  • NHibernate 上值对象的单独表

    我是 DDD 和 NHibernate 的新手 在我当前的项目中 我有一个实体 Person 它包含一个值对象 比如说 Address 今天 这很好 但也许有一天我会要求我的值对象 在本例中为地址 必须成为一个实体 在尝试以 DDD 方式对
  • TCP 异步套接字抛出 10057

    我编写了以下代码 public static void BeginListen int port IPAddress address IPAddress Any IPEndPoint endPoint new IPEndPoint addr
  • 如何在 WMIC 中转义逗号(如字符串)

    我希望能够运行如下查询 wmic path Win32 Service where DisplayName like FooBarService X Y get 但是 由于类似字符串中的逗号 它不起作用 我收到的错误是 动词无效 我尝试用反
  • 如何显示保留两位小数的浮点数? [复制]

    这个问题在这里已经有答案了 我有一个采用浮点参数 通常是整数或具有一位有效数字的小数 的函数 并且我需要输出具有两位小数的字符串中的值 5 5 00 5 5 5 50 等 我怎样才能在Python中做到这一点 由于这篇文章可能会发布一段时间
  • 将列添加到 Crystal Report 的数据集 (xsd)

    我正在编写一份报告 需要将一列添加到我的一个数据集和 RPT 文件中 但是当我尝试修改数据集时 收到错误消息 指出指定的表不存在 当我查看代码时 看起来最初有一个表用于此目的 但这种方法已被放弃 现在是通过附加到报告的代码中的数据集来完成的
  • 将文件名分配给 shell 中的变量

    我正在尝试编写一个脚本 它的功能比我要向您展示的功能更复杂一些 但我知道问题出在这部分 我希望通过以下方式将目录中文件列表的每个名称分配给一个变量 同一变量 一次一个 for循环 然后用这个在循环内部做一些事情 看看是什么意思 for th