shell之学习笔记

一:举例
test.sh的脚本内容如下
#!/bin/bash
my_fun() {
   echo "$#"
}
echo 'the number of parameter in "$@" is '$(my_fun "$@")
echo 'the number of parameter in "$*" is '$(my_fun "$*")
执行:./my.sh 1 2 3后返回:
the number of parameter in "$@" is 3
the number of parameter in "$*" is 1

解答: 脚本名称叫test.sh 入参三个: 1 2 3
      运行test.sh 1 2 3后
      $*为"1 2 3"(一起被引号包住)
      $@为"1" "2" "3"(分别被包住)
      $# 参数号

     注释:$*表示所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
           $@表示所有这些参数都分别被双引号引住,若一个脚本接收到两个参数,$@等价于$1$2
           $#表示提供给脚本的参数号
      $*
     所有的位置参数,被作为一个单词.
     注意:"$*"必须被""引用.
     $@
     与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
     并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的
     单词.
     注意:"$@"必须被引用.

posted @ 2019-12-19 14:12  拿破轮先生  阅读(95)  评论(0编辑  收藏  举报