当前位置:网站首页>Shell $*和[email protected]的区别
Shell $*和[email protected]的区别
2022-07-22 09:24:00 【昙花逐月】
$* 和 [email protected] 都表示传递给函数或脚本的所有参数。
当 $* 和 [email protected] 不被双引号" "
包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。
但是当它们被双引号" "
包含时,就会有区别了:
"$*"
会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。"[email protected]"
仍然将每个参数都看作一份数据,彼此之间是独立的。
比如传递了 5 个参数,那么对于"$*"
来说,这 5 个参数会合并到一起形成一份数据,它们之间是无法分割的;而对于"[email protected]"
来说,这 5 个参数是相互独立的,它们是 5 份数据。
如果使用 echo 直接输出"$*"
和"[email protected]"
做对比,是看不出区别的;但如果使用 for 循环来逐个输出数据,立即就能看出区别来。
编写下面的代码,并保存为 test.sh
#!/bin/bash
echo "print each param from \"\$*\""
for var in "$*"
do
echo "$var"
done
echo "print each param from \"\[email protected]\""
for var in "[email protected]"
do
echo "$var"
done
运行 test.sh,并附带参数:
[[email protected] demo]$ . ./test.sh a b c d
print each param from "$*"
a b c d
print each param from "[email protected]"
a
b
c
d
从运行结果可以发现,对于"$*"
,只循环了 1 次,因为它只有 1 分数据;对于"[email protected]"
,循环了 5 次,因为它有 5 份数据。
边栏推荐
- 1.针对QDate()的日期指向那边, 2.QT_VERSION的用法总结
- 消息中间件
- 解决不能维持IntelliJ 之 Target bytecode Version版本号
- 1.QImage 填充透明画笔;2.path.addText如何添加换行
- LeetCode 693. 交替位二进制数
- PTA 习题8-8 判断回文字符串
- Three ways to restrict IP access between micro services
- Leetcode 116. fill in the next right node pointer of each node
- 1.创建函数的动态库,2.HOWTO Create and Deploy a Sample DLL using MinGW
- LeetCode: 184. 部门工资最高的员工
猜你喜欢
随机推荐
Go language learning: go language journey (4)
程序员面试金典面试题 01.05. 一次编辑
1.QTableWidget的closable,2.pro/build_pass、member,3.QString&&
paper - A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising
PAT基础习题集7-26 单词长度(精简代码)
Parameter index out of range (1 > number of parameters, which is 0).
LeetCode: 197. 上升的温度
Summary 20220119
Data storage partition -- range partition, hash partition, list partition, and indispensable part of performance tuning
QT | modal dialog and modeless dialog qdialog
STM32+ESP8266+MQTT协议连接OneNet物联网平台
Latex如何写引用时将作者名字缩写为et al
Pat grade B 1020 moon cake (pay attention to the measuring points)
Leetcode 720. the longest word in the dictionary
LeetCode 105. 从前序与中序遍历序列构造二叉树
(C language) is array a special pointer?
Exercise 7-4 find out the elements that are not common to two arrays (C language)
在各类数据库中随机查询n条数据
Go language learning: go language journey (III)
各种技术资料汇总-MYSQL