shenhp 发表于 2018-8-26 09:14:40

Shell特殊位置变量($0,$1$2,$*,$#,$$,$?,$@,${})

  $0    文件名及路径
  $1,$2    参数1,参数2
  $#    传递给脚本或函数的参数个数
  $$    当前Shell进程ID
  $?    判断上个命令的执行成功与否,0为成功。
  $@    传递脚本或函数的所有参数
  $*    传递脚本或函数的所有参数
  ${}
  注:$@和$*都是传递脚本或函数的所有参数。被双引号" "包含时,两者有区别如下
  # cat 007.sh
  #!/bin/bash
  for var in “$@”
  do
  echo "$var"
  done
  # sh 007.sh feng cx xiao
  feng
  cx
  xiao
  # cat 007.sh
  #!/bin/bash
  for var in "$*"
  do
  echo "$var"
  done
  # sh 007.sh feng cx xiao
  feng cx xiao
  $var和${var}区别
  如:当你要显示变量值加随意的字符时
  echo $var_AA$var会将后面的_AA也当做变量的一部分
  echo ${var}_AA${var}不会将后面的_AA当作变量的一部分

页: [1]
查看完整版本: Shell特殊位置变量($0,$1$2,$*,$#,$$,$?,$@,${})