$*
所有的位置参数,被作为一个单词.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的
单词.
$@ 和 $* 只在被双引号包起来的时候才会有差异
双引号括起来的情况:
$*将所有的参数认为是一个字段
$@ 以IFS(默认为空格)来划分字段,如果空格在“”里面,不划分。
下边给个例子看一下:
一、$* 不添加 “”
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 2 3 4) 4 for fi in ${var[*]}; do 5 echo "-----" 6 echo $fi 7 done 结果: [webadmin@www testfor]$ ./printFile ----- 1 ----- 2 ----- 3 ----- 4
二、$@ 不添加 “”
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 2 3 4) 4 for fi in ${var[@]}; do 5 echo "-----" 6 echo $fi 7 done 结果: [webadmin@www testfor]$ ./printFile ----- 1 ----- 2 ----- 3 ----- 4
三、$*添加双引号
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 2 3 4) 4 for fi in "${var[*]}"; do 5 echo "-----" 6 echo $fi 7 done 结果: [webadmin@www testfor]$ ./printFile ----- 1 2 3 4 将所有的参数解析为 一个参数
四、$@ 添加双引号
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 2 3 4) 4 for fi in "${var[@]}"; do 5 echo "-----" 6 echo $fi 7 done 结果: [webadmin@www testfor]$ ./printFile ----- 1 ----- 2 ----- 3 ----- 4 和 $* , $@没有加上引号的结果一直
五、数据修改:
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 "2 3" 4) 4 for fi in "${var[@]}"; do 5 echo "-----" 6 echo $fi 7 done 结果: [webadmin@www testfor]$ ./printFile ----- 1 ----- 2 3 ----- 4 将数组中 的 2和3 印在括号内 , 经过$@会解析为一个 字符串参数
综上可以看到 , 我们实际使用中还是使用$@ 是最好的选择
[webadmin@www testfor]$ vi printFile 1 #!/bin/bash 2 3 var=(1 "2 3" 4) 4 for fi in /yazuo_apps/test/ch02/*; do 5 echo "-----" 6 echo $fi 7 done
相关推荐
进程状态变量 1、$$获取当前shell的进程号(PID) 2、$!执行上一个指令的PID 3、$?...$*和$@的区别 $*将所有的参数视为单个字符串,相当于“$1$2$3” $@将每个参数视为单个的字符串,保留命令行中的任
第一章 脚本编程与 Linux 命令Shell 脚本基础知识$1 入参,空值时默认赋值技巧$* 和 $@ 区别$* 和 $@ 都表示传递给函数或脚本的所有参数,
B shell与 C shell的区别 ; B shell的详解和C shell 的详解
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 区别:$@, $* 相同点:都是引用所有...
6. $* 和 $@的区别 当 $* 和 $@ 被双引号(” “)包含时, “$*”会将所有的参数作为一个整体,以“$1 $2 … $n”的形式输出所有的参数。 “$@”会以各个参数分开,以“$1”, “2”,…”2″ , …”2″,…”n”的...
matlab仿真代码BASH SHELL面试问题 [[ :up_arrow: ]] Shell脚本 编写一个脚本,打印出自己的绝对路径 编写一个脚本,打印出自己的内容 ...将$@和$*与"$@"和"$*"区别开。 区分exit 0和exit 1 。 {}和()有
shell脚本与Makefile区别.docx
cp -pr /etc/skel/.bash* /home/test/ ... 您可能感兴趣的文章:浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释php $_SERVER windows系统与linux系统下的区别说明linux让$变成#符号的实操方法linux中$符号的基础用法教程
在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用’$param’这种带引号的使用的场景,首先大家看一段例子: ...
linux下常见4中shell脚本的区别
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...
在shell编程中经常用到循环,常用的循环有for和while循环两种。while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别。 一、常用语法 1、for循环 for...
Shell 中的字符;变量;变量的类型;使用变量;扩展变量;变量的赋值与输出;Shell 的算术扩展;在 Shell 中计算时间;算术运算常用表达式;算术运算的优先级;变量递增的前置后置区别;熟悉 Shell 基础知识 掌握 Shell 脚本的...
ksh bash csh的区别,编写shell脚本需要注意的事项
如shell编程需要的基础知识储备、shell脚本概念介绍及第一个脚本案例、shell脚本基础知识-作用地位-比其他语言优势、建立一个规范的shell脚本、执行shell脚本的多种方法及重要区别精讲、shell脚本开发的9点基本规范...
android adb shell 命令大全 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --name 名称 --...
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。基本上shell分两大类: 一:...
# test7:用于对比各种脚本程序执行方式的区别 echo The variable var1 is $var1 echo The environment variable env1 is $env1 echo The current shell PID is $$ 1. 使用绝对路径执行脚本 测试过程 root@Dell-Tom...
**软连接与硬链接的区别** **怎么查看文件** **IOS七层模型** **三次握手与四次挥手** **lvm 逻辑卷创建过程** **磁盘配额** **raid 磁盘阵列** **文本三剑客** **防火墙iptables与fireward** **Linux系统...
主要介绍了linux下csh, tcsh,bash, sh等shell的区别?,需要的朋友可以参考下