一个脚本实例浅析shell脚本中$@与$*的区别
2014-07-24 14:55
239 查看
我们经常会在脚本中用到$@和$*这两个变量,但是可能许多人只是知道这两个变量存储的是所有的命令行参数,但是其具体差别并不一定知道。所以这里我用一个脚本实例来分析一下这两个变量的区别。
[root@www lianxi]# cat test.sh
#!/bin/bash
#Author: Helloween
#Description: hehe
echo "############"
echo '$@:'
for i in "$@"
do
echo $i
done
echo "############"
echo '$*:'
for i in "$*"
do
echo $i
done
echo "############"
echo '"1" "2" "3" "4" "5":'
for i in "1" "2" "3" "4" "5"
do
echo $i
done
echo "############"
echo '"1 2 3 4 5":'
for i in "1 2 3 4 5"
do
echo $i
done
echo "############"
[root@www lianxi]#
首先,这就是我要使用的脚本的内容。
现在,将脚本执行一下。
[root@www lianxi]# bash test.sh 1 2 3 4 5
############
$@:
1
2
3
4
5
############
$*:
1 2 3 4 5
############
"1" "2" "3" "4" "5":
1
2
3
4
5
############
"1 2 3 4 5":
1 2 3 4 5
############
[root@www lianxi]#
很容易看出第一个for循环和第三个循环、第二个for循环和第四个循环所输出的内容时一样的。其实$@与$*的区别就在循环列表中了。
$@:变量替换之后,会将所有命令行参数包含在分隔的文本值之中。比如:"1" "2" "3" "4" "5"。
$*:变量替换之后,会将所有的命令行参数包含在单个文本值之中。比如:"1 2 3 4 5"。
相信看到这里,大家也差不多能够理解这两个变量的区别了,希望这篇博客能帮助到大家。
以上纯属个人理解,如有不正之处,敬请指正。
本文出自 “Helloween” 博客,请务必保留此出处http://helloween.blog.51cto.com/6358580/1529678
[root@www lianxi]# cat test.sh
#!/bin/bash
#Author: Helloween
#Description: hehe
echo "############"
echo '$@:'
for i in "$@"
do
echo $i
done
echo "############"
echo '$*:'
for i in "$*"
do
echo $i
done
echo "############"
echo '"1" "2" "3" "4" "5":'
for i in "1" "2" "3" "4" "5"
do
echo $i
done
echo "############"
echo '"1 2 3 4 5":'
for i in "1 2 3 4 5"
do
echo $i
done
echo "############"
[root@www lianxi]#
首先,这就是我要使用的脚本的内容。
现在,将脚本执行一下。
[root@www lianxi]# bash test.sh 1 2 3 4 5
############
$@:
1
2
3
4
5
############
$*:
1 2 3 4 5
############
"1" "2" "3" "4" "5":
1
2
3
4
5
############
"1 2 3 4 5":
1 2 3 4 5
############
[root@www lianxi]#
很容易看出第一个for循环和第三个循环、第二个for循环和第四个循环所输出的内容时一样的。其实$@与$*的区别就在循环列表中了。
$@:变量替换之后,会将所有命令行参数包含在分隔的文本值之中。比如:"1" "2" "3" "4" "5"。
$*:变量替换之后,会将所有的命令行参数包含在单个文本值之中。比如:"1 2 3 4 5"。
相信看到这里,大家也差不多能够理解这两个变量的区别了,希望这篇博客能帮助到大家。
以上纯属个人理解,如有不正之处,敬请指正。
本文出自 “Helloween” 博客,请务必保留此出处http://helloween.blog.51cto.com/6358580/1529678
相关文章推荐
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本。
- 转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本。
- linux、shell脚本实例一“查找一个文件或者目录 找到了提示 没找到则输出未找到”
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- Shell脚本遍历一个日期范围实例
- shell脚本只运行一个实例
- shell脚本中$@与$#区别
- [shell应用进阶]:限制同时运行脚本实例的个数 -- 串行化:换一个思路。
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- Shell 编程--结合大量实例阐述如何编写一个shell脚本
- Shell脚本遍历一个日期范围实例
- Tomcat创建实例的一个脚本(shell 脚本)
- 父shell和子shell的区别,在shell脚本中要cd一个文件夹为什么要用父shell运行
- Shell脚本字符串单引号和双引号的区别浅析
- 如何使Shell脚本只有一个实例在运行
- Shell脚本实例(一) 监控一个程序的运行情况
- 如何确保 Shell 脚本只有一个实例运行
- 转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本。
- 查看: 35330 | 回复: 9 打印 上一主题 下一主题 [学习共享] 转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本
- Shell 编程--本文结合大量实例阐述如何编写一个shell脚本