首页 > 其他分享 >Bash的$@和$*

Bash的$@和$*

时间:2025-01-22 17:11:24浏览次数:1  
标签:bar echo world array foo hello Bash

深入理解 $@ 与 Bash 参数处理

在 Bash 脚本编写中,$@$* 都用于处理 脚本参数(Positional Parameters),但它们的行为有所不同,理解它们的区别至关重要。本文将深入剖析它们的用法、适用场景,并对比 "$@""$*" 在不同场景下的表现。


1. $@$* 的基本概念

在 Bash 中:

  • $@ 代表所有参数,并保持参数的分割性
  • $* 也代表所有参数,但会将它们合并成一个字符串

假设我们编写了一个 Bash 脚本 test.sh,其内容如下:

#!/bin/bash

echo "Using \$*: $*"
echo "Using \$@: $@"

echo "Iterating over \$*:"
for arg in "$*"; do
    echo "Arg: $arg"
done

echo "Iterating over \$@:"
for arg in "$@"; do
    echo "Arg: $arg"
done

然后,我们执行:

bash test.sh "hello world" "foo bar" baz

让我们看看输出结果:

Using $*: hello world foo bar baz
Using $@: hello world foo bar baz

Iterating over $*:
Arg: hello world foo bar baz  # 

标签:bar,echo,world,array,foo,hello,Bash
From: https://www.cnblogs.com/smartljy/p/18686443

相关文章

  • bash: ./xxx: No such file or directory
    问题现象在使用开源或他人可执行文件的时候,可能会遇到bash:./squashfs2sparse:Nosuchfileordirectory的报错;实际测试发现该文件存在,并且有可执行权限;问题分析通过对报错文件的分析1:文件具有可执行权限;2:文件编译的系统和当前系统一致;x86-643:可执行文件依赖一个......
  • 大数据平台Bug Bash大扫除最佳实践
    作者:尹伟一、背景随着越来越多的"新人"在日常工作以及大促备战中担当大任,我们发现仅了解自身系统业务已不能满足日常系统开发运维需求。为此,大数据平台部门组织了一次BugBash活动,既能提升自己对兄弟产品的理解和使用,又能促使自家产品功能日趋完善。今天来给大家分享一些实际操......
  • juju的电脑基本操作学习笔记_打开CMD与bash命令
    juju的电脑基本操作学习笔记_打开CMD与bash命令普普通通滴打开CMD方式一:任务栏搜索CMD方式二:按住win+R打开运行在里面输入cmd方式三:在文件夹的任何一个位置单击右键,选择Openinterminal方式四:在资源管理器的地址栏的最前面加上cmd空格再回车以管理员方式运行CMD常用的b......
  • docker containner挂掉,无法exec进入bash,如何修改文件的终极解决方法.210730
    场景:Nginx在bash里面配置的时候挂掉了,然后dockerstart不起来,execbash进不去,造成无法再改里面的文件了解决方法:1,dockerps–a可以查到所有docker,包括没有运行的,找到containnerID[root@hecs-29489~]#dockerps-aCONTAINERIDIMAGECOMMANDC......
  • Bash和Zsh中read命令的使用区别
    前言:在编写sh脚本的时候,发现使用read命令和预期的效果不一样,,因为shell用的是zsh,查了一下发现bash和zsh中read命令的用法有些区别,这里记录一下。读取字符从标准输入中读取一个或多个字符bash:read-nnuminputzsh:read-knuminput例子:root@hcss-ecs-b5f1~❯read-k......
  • Windows git bash 文字显示/斜杠开头数字
    前言全局说明Windowsgitbash文字显示/斜杠开头数字一、说明详细介绍:https://zhuanlan.zhihu.com/p/133706032二、问题三、解决方法gitconfig--globalcore.quotepathfalse免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。参考、......
  • Windows下Git Bash的tar命令使用
    Administrator@WIN-5B2ST4S1K5HMINGW64~/Documents/spark$lsspark-3.5.4-bin-hadoop3.tgzspark-3.5.4-bin-without-hadoop.tgzAdministrator@WIN-5B2ST4S1K5HMINGW64~/Documents/spark$tar-xspark-3.5.4-bin-hadoop3.tgz./tar:Refusingtoreadarchivecon......
  • 深入理解Linux环境配置文件:.bashrc、.bash_profile和.profile
    转自:https://blog.csdn.net/weixin_39973810/article/details/137281970在Linux世界中,理解各种shell配置文件如.bashrc、.bash_profile和.profile的作用和区别对于有效地管理和定制你的命令行环境至关重要。许多用户经常对这些文件的功能和使用场景感到困惑。本文旨在详细解释这......
  • 监控BASH脚本执行的命令的退出状态.250108
    解释代码:if[$?-eq0];then在Bash脚本中,$?是一个特殊的变量,它表示上一个执行的命令的退出状态。在Unix-like系统中,命令成功执行通常返回0,而非零的返回值通常表示命令执行失败或发生错误。if[$?-eq0];then这行代码的意思是:if:Bash中的条件语句关键字,用于开始......
  • 每个工程师都应知道的 10 个 Bash 脚本结构【转】
    每个工程师都应知道的10个Bash脚本结构工程师掌握Bash:10个结构统治一切Bash脚本是工程师的超能力。无论是自动化重复任务、连接工具还是管理系统,Bash总是简单而强大。但就像任何力量一样,它需要掌握。让我通过一个可能的场景,带您了解10个关键的Bash结构。场景您需......