首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Bash完成的上下文中关于$ {array [*]}与$ {array [@]}的混淆

在Bash脚本中,${array[*]}${array[@]}都用于表示数组中的所有元素,但它们之间存在一些差异。

  1. 数组元素的展开方式:
  • ${array[*]}:将数组中的所有元素展开为一个字符串,元素之间使用空格分隔。
  • ${array[@]}:将数组中的所有元素展开为多个独立的字符串,即保留原始数组中的元素个数。
  1. 使用场景:
  • ${array[*]}:适用于将数组中的所有元素作为一个整体进行处理,例如传递给一个命令或函数作为参数。
  • ${array[@]}:适用于需要逐个处理数组中的元素,例如在循环中遍历数组。
  1. 举例说明:
代码语言:bash
复制
#!/bin/bash

array=("apple" "banana" "cherry")

# 使用 ${array[*]}
for arg in ${array[*]}; do
  echo "Argument: $arg"
done

# 输出结果:
# Argument: apple
# Argument: banana
# Argument: cherry

# 使用 ${array[@]}
for arg in "${array[@]}"; do
  echo "Argument: $arg"
done

# 输出结果:
# Argument: apple
# Argument: banana
# Argument: cherry

在上述示例中,使用${array[*]}${array[@]}的结果相同,但在实际应用中,它们的使用场景和处理方式可能会有所不同。因此,在编写Bash脚本时,需要根据具体需求选择合适的展开方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell 基础语法

test_name="test" echo $test_name echo ${test_name} 注意无论您是否选择变量名两边加入花括号请保持上下文编码规范一致性。...允许同一行内放置两条或更多命令。 : | 冒号 空命令。它在 shell 中等价于 “NOP”(即no op,空操作) shell 内建命令 true 有同样效果。...``` #### $() 和 `` 二者都可用于「命令替换」,所谓命令替换前面变量章节提到变量替换类似,即完成区域内部命令并将结果替换出来和当前命令行重组。...,程序执行时实际运行是替换后语句 比较推荐使用 $() 这种形式,理由有: 反引号(``)容易与单引号(’’)混淆复合命令替换中,使用反引号(``)需要进行额外转义 a=`command1... for 循环 不同是,while 循环是不知道循环次数情况下使用

1K20

shell 脚本编程

从程序员角度来看, Shell本身是一种用C语言编写程序,从用户角度来看,Shell是用户Linux操作系统沟通桥梁。...用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂操作。Linux GUI日益完善今天,系统管理等领域,Shell编程仍然起着不可忽视作用。...文中,我们关注重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认Shell。...    lengthn=${#array_name[n]}     读取数组元素值一般格式是: C代码 ${array_name[index]}valuen=${array_name[2]}  ...i++ )); do  echo valuen=${name[$i]}    done    分享一个关于shell编程快速编程入门资料 http://www.makeru.com.cn/live/

42310
  • 帮助你排序文本文件 Awk 命令行或脚本(推荐)

    GNU 版本 awk 是该实用程序一个高度可移植自由软件版本,具有几个独特功能,因此本文是关于 GNU awk 。...定义内置变量 FS,它代表字段分隔符field separator,并且 awk 命令中使用 –field-separator 设置值相同,它只需执行一次,因此它包含在 BEGIN 语句中。...排序上下文中这样做好处是,你可以将任何字段分配为键,将任何记录分配为值,然后使用内置 awk 函数 asorti()(按索引排序)按键进行排序。现在,随便假设你只想按第二个字段排序。...为此,awk 提供了特殊 END 关键字。 BEGIN 相反,END 语句仅在扫描了所有记录之后才触发一次。...,然后将结果放入名为 SARRAY 新数组(我文中发明任意名称,表示“排序 ARRAY”)。

    1.6K21

    奇淫异巧之 PHP 后门

    双参数回调后门 PHP5.4.8+ 版本中,assert 有一个新可选参数 descrition。...传输过程中,还可以进行一些加密、混淆操作,来绕过waf端检测。...直接调用源类库里方法,再稍微加一点混淆和加密,就很难被发现了。 后话 真正后门,要靠系统层 对于 PHP 后门来说,如果能做到隐蔽性,不会被D盾等工具自动检测出来。... Linux 下就是删除 .bash_history 和 .viminfo 记录,这些记录显示了你前段时间执行了哪些命令,修改了哪些文本。 ? ? ? ?...当然,这篇文章主要是想阐述思路,比如回调函数妙用,PHP 后门应该是什么样~ 文中介绍姿势是我自己实战或者打比赛常用,搜集而成,并非原创。

    1.5K00

    机器学习数学基础:点积和欧几里得空间

    而我们所遇到绝大多数问题,都是欧几里得空间,这或许就是把两者混淆原因吧。也是因为这个原因,本书在后续内容中,如果不特别声明,也都是欧几里得空间。...image.png 图 1-4-1 因为 , , , ,所以: 根据几何形式定义,可以将两个向量内积理解为一个向量 大小另外一个向量 方向上投影...很多关于向量运算资料,在说明点积同时,会提到另外一种名为叉积向量运算,对此1.2.1节已经介绍过。从本节角度来看,叉积并不能定义内积空间,请读者不要混淆。...手工计算向量点积,可以依据(1.4.3)式完成,我们在这里不对此做重点介绍,因为这是诸多线性代数教材中都少不了。下面要演示是如何用程序实现点积计算。...点击【阅读原文】,查阅关于本书更多内容,包括其他章节选读

    68020

    Perl语言入门系列之二

    =ne小于 gt小于或等于=ge 数值比较操作符其含义使用数学中相同,而字符串比较操作符则会对字符串从左到右进行一一对比,参照是字符ASCII编码或拓展到Unicode...Perl判断语句可以通过一些简单规则来识别这些返回值代表真还是假,一般来说数字0、字符串'0'、空字符串""、空列表()、undef布尔上下文中都是假值,除此之外其他所有的值都是真值。...而Perl也具有如此特点,这表现在数据不同上下文中会有不同含义,例如在1.2.1.1中,Perl会根据操作符类型(数字操作符和字符串操作符)将标量数据在数值和字符串之间进行灵活转换,不仅如此...这里需要注意下面两条语句差异: ($sum) = @array;   #列表上下文,$sum为@array第一个元素 $sum = @array;   #标量上下文,$sum为@array元素个数 ⑶use..."@keys\n"; 结果如下所示: 使用Perl哈希函数可以根据需要自己设置甚至添加环境变量,但是需要注意是,%ENV数据初始值Bash环境变量是一样Perl中修改环境变量不会修改Linux

    1.2K30

    13个有趣JavaScript原生数组函数

    文中,我将复习一些数组原型方法,并探索这些方法用法。 1、循环:.forEach 这是JavaScript中最简单方法,但是IE7和IE8不支持此方法。...和.forEach参数类似,需要一个包含value,index,和array三个参数回调函数,并且也有一个可选第二个上下文参数。....concat常用用法:array.concat(val, val2, val3, valn) .concat返回一个新数组 array.concat()没有参数情况下,返回源数组浅拷贝。...跟大多数排序函数类似,Array.prototype.sort(fn(a,b))需要一个包含两个测试参数回调函数,其返回值如下: ab之前则返回值小于0 a和b相等则返回值是0 ab之后则返回值小于...12、操作符:in 面试中新手容易犯错误是混淆.indexOf和in操作符: var a = [1, 2, 5] 1 in a // <- true, but because of the 2!

    56530

    Shell 主要逻辑源码级分析:SHELL 运行流程 (1)

    分析版本:首先选用最常用bash,然后版本是bash4.2-release bash代码简介:之前做过一个统计,shell源码大概有10万行,其中核心逻辑1万多行,这也是分析目标代码。...分支2第一种情况: run_one_command (command_execution_string) 执行过程中调用parse_and_execute (evalstring.c中定义)解析执行命令...一个上下文中变量都是在这个上下文中可见。...一个上下文中所有变量,存放在var_contexttable成员中。 变量:bash变量不强调类型,可以认为都是字符串。...栈顶 :foo上下文(包含foo上下所有局部变量) 栈底:global全局上下文(包含所有全局变量) 变量查找顺序:从栈顶往栈底,即如果栈顶上下文中没有要查找变量,则查找其栈中下一个上下文,

    5K01

    shell中各种括号作用(上)

    如:array=(a b c d) 双小括号(( )) 1.整数扩展。这种扩展计算是整数型计算,不支持浮点型。...二.中括号,方括号[] 单中括号 [] 1.bash 内部命令,[和test是等同。如果我们不用绝对路径指明,通常我们用都是bash自带命令。...[ ]中逻辑和逻辑或使用-a 和-o 表示。 3.字符范围。用作正则表达式一部分,描述一个匹配字符范围。作为test用途中括号内不能使用正则。...4.一个array 结构上下文中,中括号用来引用数组中每个元素编号。 双中括号[[ ]] 1.[[是 bash 程序语言关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。...[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。 2.支持字符串模式匹配,使用=~操作符时甚至支持shell正则表达式。

    90420

    《Linux命令行shell脚本编程大全》第十七章 创建函数

    脚本主体部分定义了全局变量,那么函数内可以读取它值。 函数内定义了全局变量,脚本主体部分也可以读取它值。 默认情况下,脚本中定义任何变量都是全局变量。...17.4.1 向函数传数组参数 复习一下数组用法: 定义方法1:初始化数组 array=(a b c) 定义方法2:新建数组并添加原色  array[数组]=元素 定义方法3:将命令输出作为数组元素...array=($(command)) 数组操作: 1)获取所有元素:echo ${array[*]} 2)获取第n个元素: echo ${array[n]}    n为数组下标 3)添加元素:array...如何使用:使用函数库关键在于source命令,source命令会在当前shell上下文中执行命令。而不是创建一个新shell。 source命令有个快捷别名,称作点操作符。 如何使用: . ....解决方法:将函数定义一个特定位置,这个位置每次启动一个新shell时候都由shell重新载入。 最佳地点就是.bashrc。bash shell每次启动时都会在主目录查找这个文件。 1.

    707100

    tekton入门-tasks

    介绍 task是steps集合,可以持续集成流程中按照特定顺序执行,taskk8s集群中以pod方式运行,task可以在其命名空间中可用,clustertask可以集群范围内使用 Task配置...中step一起运行容器,可以通过sidecar实现很多功能例如 docker in docker或者测试时运行一个mock apiserver,sidecar容器早于 task执行,并在task执行完成后删除... Condition中获取resource•(resources.inputs..path) 获取本地资源路径 替换数组参数 可以使用运算符扩展array参数,为此,请将[]添加到参数,以将该数组插入到引用位置...例如,如果build-args是array类型参数,则以下示例是无效,因为该字符串step中未隔离: - name: build-step image: gcr.io/cloud-builders.../some-image args: ["build", "additionalArg $(params.build-args[*])"] array中引用build-args也是不允许

    2.6K10

    SHELL(bash)脚本编程一:变量

    类型 环境变量 概念 当我们通过ssh等工具登录系统时,便获得一个shell(一个bash进程),bash启动过程中会加载一系列配置文件,这些配置文件作用就是为用户准备好bash环境,大部分环境变量都是在这些文件中被设置...作用 环境变量作用主要是影响shell行为,整个bash进程生命周期中,会多次使用到环境变量。...自定义变量 普通变量 bash除了初始化时自动设置变量外,用户还可以根据需要手动设置变量。...}对变量名起始和结束进行界定,不引起混淆情况下,大括号可以省略。...命令执行过程中,变量被其值所替换,替换过程中能够对应于各种变换。bash称对变量进行取值过程为变量替换或变量扩展。 直接取值 #如果值中包含空白字符,赋值时需要用引号引起来表示一个整体。

    2.7K40

    Awk,一行程序和脚本,帮助您对文本文件进行排序【Programming】

    GNU版本awk是该实用程序高度可移植免费软件版本,具有几个独特功能,因此本文是关于GNUawk。...定义内置变量FS ,它表示字段分隔符,并且--field-separator中awk命令中设置值相同,只需执行一次,因此它包含在BEGIN语句中。... awk 中数组 您已经知道如何通过使用 $符号和字段号收集特定字段值,但是在这种情况下,您需要将其存储在数组中,而不是将其打印到终端。 这是通过 awk 数组完成。...排序上下文中,这样做可以将任何字段分配为键,将任何记录分配为值,然后使用内置awk函数asorti()(按索引排序)按键值进行排序。现在,假设您只希望按第二个字段进行排序。...最后,使用for循环迭代SARRAY中每个项,使用printf()函数打印每个键,然后ARRAY中打印该键相应值。

    1.5K00

    【目标检测】YOLOv5:添加漏检率和虚检率输出

    前言 目标检测领域,衡量一个模型优劣指标往往是mAP,然而实际工程中,有时候更倾向于看漏检率和虚检率。...首先来看YOLOv5原本输出混淆矩阵,图中灰色覆盖地方是原本输出各类别,也就是输出正例,最后一行和一列是背景类。 列是模型预测结果,行是标签真实结果。...一些博文中提到:漏检率=1-召回率,YOLOv5中也可以这样理解吗? 回顾一下召回率计算公式:R = TP / (TP+FN),通俗说,召回率就是来衡量真实样本中,被检测正确比例。...这里TP(true positive)表示预测出正确框,即通过模型预测出框,逐个该图像标注框求iou,如果与标注框产生最大iou大于之前设置好iou阈值,并且此预测框对应标签通过iou...先来看看YOLOv5模型保存逻辑: train.py中,定义了一个fi指标: # Update best mAP fi = fitness(np.array(results).reshape(1,

    4.9K51
    领券