扩展`$`来自`*`和`@`

时间:2018-04-08 11:00:02

标签: bash

我正在学习bash扩展。

有三种类型的扩展与$

绑定
  1. 参数扩展
  2. 命令替换
  3. 算术扩展。
  4. 我在特殊符号$上进行实验。

        $ ls
        foo bar zoo
        $ echo $*
        #return nothing
        $ echo $@*
        foo bar zoo
    

    @$

    正在进行什么

    此外,

        $ ls $
        ls: $: No such file or directory
        $ ls $*
        foo bar zoo
        $ ls $a  #or any character
        foo bar zoo
    

    我对$的可变性感到困惑。

    如何解释其上述行为。

1 个答案:

答案 0 :(得分:1)

一些例子:

#!/bin/bash

a_function(){

    echo "positional parameters must be called in a script or a function"
    echo "positional parameters: $@"
    echo "positional parameters: $*"
    echo "directory's content:" *
}

a_function "one" "two" "three" "pan"

输出:

positional parameters must be called in a script or a function
positional parameters: one two three pan
positional parameters: one two three pan
content of directory: <your current directory>

PS:

  • ls $a ls变量a(空),如此简单的ls
  • ls $* ls位置参数(空),这么简单ls
  • echo $@ *显示$ @(空)和目录&#34;
  • ls: $,单独错误$

更多信息:doc bash