`
vivimusing
  • 浏览: 81201 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

shell中的$@和$*的区别

阅读更多

$@和$*在shell中都表示所有命令行参数,在没用双引号的时候,它们2个是差不多的,但是,加了双引号,结果就不同了

 

假设命令行参数 $1是hello $2是world

 

for i in "$*"

do echo $i

done

结果是

hello world

 

for i in "$@"

do echo $i

done

结果是

hello

world

 

"$@"将命令行参数视为单独的字符串,而"$*"则把命令行参数当成一个整体的字符串来处理。

分享到:
评论
1 楼 mimicom 2011-08-22  
哦..........呵呵...

相关推荐

    浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释

    #### $* 和 $@ - **$*:** 当整个参数列表被视为一个单一的字符串时使用。如果参数中包含空格,则需要用引号括起来。 - **$@:** 当需要将每个参数视为独立的字符串时使用。即使参数中有空格,也会保持原样。 这两个...

    Linux Shell 脚本攻略

    - **$@ 和 $***:两者都代表所有参数,但使用双引号时有区别,$@会保留每个参数的独立性。 4. **流程控制** - **条件语句**:if-else、case结构用于根据条件执行不同代码块。 - **循环语句**:for、while、until...

    shell编程13问

    - **$@与$***:它们在脚本中用于处理位置参数,$@代表所有位置参数的列表,而$*将所有位置参数视为一个单一的字符串。 - **逻辑运算符&&与||**:用于Shell中的命令组合,&&表示前一个命令执行成功才执行后一个命令...

    Shell编程中的特殊变量之进程状态变量介绍

    进程状态变量 1、$$获取当前shell的进程号(PID) 2、$!执行上一个指令的PID 3、$?...$*和$@的区别 $*将所有的参数视为单个字符串,相当于“$1$2$3” $@将每个参数视为单个的字符串,保留命令行中的任

    Shell十三问-ChinaUnix精华贴整理

    `$@`和`$*`都用于传递命令行参数,但在双引号中,`$@`会以每个参数为一个元素,`$*`则将所有参数视为一个字符串。 11. **&&与||的区别** `&&`和`||`是逻辑操作符。`&&`表示条件语句,前一个命令成功后才执行下一...

    shell 十三问

    `$@`与 `$*` 的区别 - **`$@`**:当作为单独参数传递给脚本或函数时,每个参数都会保持独立。 - **`$*`**:所有参数作为一个整体传递,中间由空格分隔。 #### 10. `&&`与 `||` 的区别 - **`&&`**:逻辑与操作符...

    4种shell的区别

    本文将详细探讨四种常见的Shell——C Shell (csh)、TC Shell (tcsh)、Bourne Shell (sh) 和 Bash Shell (bash) 的区别。 #### C Shell (csh) - **特点**:C Shell是最早期的一种Shell,其设计灵感来源于C语言。它...

    Linux的Shell命令详解

    4. **$@ 和 $***: 都表示所有位置参数的列表。它们的区别在于当参数包含空格或其他特殊字符时的行为不同。使用双引号(`"$@"`)时,每个参数被视为独立的单元,即使其中包含空格也不会被合并;而`"$*"`则会将连续的...

    B shell与 C shell的区别

    B shell和C shell都是Linux操作系统中的shell类型,它们之间存在一些关键的区别。 首先,让我们从B shell开始。B shell,全称为Bourne shell,是UNIX最初使用的shell。它在每种UNIX上都可以使用,并且在shell编程...

    Shell脚本用for循环遍历参数的方法技巧

    for i in $* # 在$*中遍历,每个参数被视为独立的,循环次数等于参数个数 do echo $i done for i in "$*" # 在"$*"中遍历,所有参数被视为一个字符串,只遍历一次 do echo $i done ``` 3. **小技巧** - ...

    shell十三问

    $@和$*都代表命令行参数,但在双引号中,$@会按每个参数分别处理,$*则会将所有参数视为一个字符串。 十、&&与||的差异 &&表示逻辑与,前一个命令成功后才会执行下一个命令;||表示逻辑或,前一个命令失败后才会...

    Shell十三问.pdf

    #### 九、特殊符号 `$@` 与 `$*` 的区别 - **`$@`**:保存命令行参数列表中的每个参数作为一个单独的字符串,即使参数中包含空格也不会合并。 - **`$*`**:保存所有命令行参数为一个字符串,如果参数之间有空格,会...

    shell常用命令

    - **5.3** `$@` 和 `$*` 的区别: - `$@`:每个位置参数都被视为独立的。 - `$*`:所有位置参数作为一个整体传递。 #### 六、Shell 算术运算符 - **6.1** 基本算术运算符包括:`+`, `-`, `*`, `/`, `%` 等。 - *...

    Shell开发教程.docx

    - `$*` 和 `$@`:所有参数列表。 - `$$`:当前进程ID。 - `$?`:前一个命令的退出状态码。 **命令行参数处理**: - 使用`$1`, `$2`, … 来引用传递给脚本的参数。 #### 8. Shell替换:Shell变量替换,命令替换,...

    shell脚本与Makefile区别.docx

    本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile 都有自己独立的通配符,不能互用。shell 脚本中的通配符是 *,表示所有的字符,而 Makefile 中的通配符是 %,表示所有的字符。 其次...

    Shell 十三问(SHELL 13Q)

    - **`source`**:用来在当前Shell环境中执行脚本,使得脚本中的变量和函数定义可以在当前Shell环境中使用。 #### 七、`()`与`{}`的区别 - **`()`**:用于创建子Shell环境,在括号内的命令会在一个新的子Shell中...

    csh,tcsh,bash,sh等shell的区别

    不同的 Shell 提供了不同的特性和功能,本文将详细介绍 csh、tcsh、bash 和 sh 这几种 Shell 的区别。 #### sh (Bourne Shell) - **起源**:sh 最早由 Stephen Bourne 在 1978 年为 Unix 第七版开发。 - **特点**...

    shell 13问 简体中文版.pdf

    - **Bourne-Again Shell (bash)**:当前Linux系统中最常用的Shell,具有更丰富的功能和更好的兼容性。 - **C Shell (csh)**:另一种流行的Shell,提供了不同于Bourne Shell的特性。 - **T C Shell (tcsh)**:C Shell...

Global site tag (gtag.js) - Google Analytics