[Linux] $* 与 $@ 的区别

脚本内容:

#!/bin/bash

echo 'Using "$*":'
for arg in "$*"; do
  echo "$arg"
done

echo 'Using "$@":'
for arg in "$@"; do
  echo "$arg"
done

执行方式:

假设脚本名为 test.sh,你通过以下方式运行脚本,传入三个参数 arg1arg2arg3

./test.sh arg1 arg2 arg3

输出结果:

  1. "$*" 的输出

    • "$*" 将所有参数作为一个整体,并以空格分隔,所以它只会输出一次:
    Using "$*":
    arg1 arg2 arg3
    
  2. "$@" 的输出

    • "$@" 会将每个参数独立处理,所以每个参数都会被单独输出:
    Using "$@":
    arg1
    arg2
    arg3
    

解释:

  • "$*" 将所有参数合并为一个字符串,然后作为单个元素处理,因此它输出一行,内容是所有参数的组合。
  • "$@" 保留了每个参数的独立性,逐个遍历和输出,所以每个参数占据一行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值