当前位置: 首页 > 面试题库 >

扩展bash数组仅给出第一个元素

宋弘壮
2023-03-14
问题内容

我想将当前目录的文件放在一个数组中,并使用此脚本回显每个文件:

#!/bin/bash

files=(*)

for file in $files
do
    echo $file
done

# This demonstrates that the array in fact has more values from (*)
echo ${files[0]}  ${files[1]}

echo done

输出:

echo.sh
echo.sh read_output.sh
done

有谁知道为什么在此for循环中仅打印第一个元素?


问题答案:

$files扩展到数组的第一个元素。试试看echo $files,它只会打印数组的第一个元素。由于相同的原因,for循环仅打印一个元素。

要扩展到数组的所有元素,您需要编写为${files[@]}

迭代Bash数组元素的正确方法

for file in "${files[@]}"


 类似资料:
  • 1. 一个扩展的基本结构 2. 编译我们的扩展 3. 静态编译 4. 编写函数 5. 小结 每一个PHP扩展都至少需要两个文件:一个配置文件和一个源文件。配置文件用来告诉编译器应该编译哪几个文件,以及编译本扩展是否需要的其它lib。

  • 我们将通过本文,学会创建一个 Creator3D 扩展,并通过扩展执行一段自定义脚本。 创建并安装扩展 找到 ~/.CocosEditor3D/packages Windows 用户为 C:\Users${你的用户名}.CocosEditor3D\packages),或者 ${你的项目路径}/packages 文件夹,如果文件夹不存在,则新建这个文件夹。 在这个文件夹里新创建一个空的文件夹,并命名

  • 问题内容: 我知道您不能动态扩展普通数组,但这是一种有效的方法吗? 我知道比尝试使用普通数组更好的方法,但是我想首先使用普通数组来解决这个问题。 我的愿望是,它从0 + 1(so 1)开始,在被称为new时,它的大小与相同,然后保持不变,同时再次声明,然后将其复制回新的大小。这对我来说很有意义,但我总是会遇到异常情况? 问题答案: 该方法不会更改OrigArray的值;它所做的只是在其中存储一个克

  • 本文会教你如何创建一个简单的 Cocos Creator 扩展包,并且向你介绍一些扩展包中的基本概念。通过学习,你将会创建一个扩展包,并在主菜单中建立一个菜单项,并通过该菜单项在主进程中执行一条扩展指令。 创建并安装扩展包 创建一个空文件夹命名为 “hello-world”,并在该文件夹中创建 main.js 和 package.json 两个文本文件。该扩展包的结构大致如下: hello-wor

  • 我发现很多讲解编程的书籍,在前面都会详细地讲解相关的预备知识,而大多数读者却更希望马上进行实践。没错,人们总是对基础知识很排斥,这也就是为什么在教育行业开始推崇自顶向下的教材设计方案了——先让读者看到一个最接近表面的东西,之后再慢慢深入地讲解内在的原理和基础。所以我决定在还没有讲什么的时候,先带大家写一个Demo程序。这样不仅可以让大家在实践中对基础知识掌握得更加牢靠,同时也调动了大家的积极性。

  • 问题内容: 有没有办法将Python元组扩展为函数-作为实际参数? 例如,这里做了魔术: 我知道可以将其定义,但是当然可能会有遗留代码。谢谢 问题答案: 不正是你要求什么。的*操作者只需解包元组(或任何可迭代),并把它们作为位置函数的自变量。有关更多信息,请参见此处。 侧问题:不要为你的标识符内建类型的名称,如使用,,,,等等-这是可怕的做法,它会回来,咬你的时候,你最不经意的时候,所以只是进入的