发表于 2018-8-30 09:00:32

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
  $#表示提供给脚本的参数号
  $*
  所有的位置参数,被作为一个单词.
  注意:"$*"必须被""引用.
  $@
  与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
  并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的
  单词.
  注意:"$@"必须被引用.

页: [1]
查看完整版本: shell之学习笔记