iszjw 发表于 2018-8-26 11:30:42

shell--特殊位置参数变量及常用内置变量

  1.shell中的特殊位置参数变量
  $0:获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径
  $n:获取当前执行的shell脚本的第n个参数,n=1..9,当n为0时表示脚本的文件名;如果n大于9,则用大括号括起来
  比如${10},接的参数以空格隔开
  $#:获取当前执行的shell脚本后面接的参数的总个数
  $*:获取当前shell脚本所有传参的参数,不加引号和$@相同;如果给$*加上双引号,如"$*",则表示把所有的参数视
  为单个字符串,相当于"$1 $2 $3"
  $@:获取当前shell脚本所有传参的参数,不加引号和$*相同;加上双引号,如"$@",则表示将所有的参数视为不同的
  独立字符串,相当于"$1" "$2" "$3" "..." 这是将多参数传递给其他程序的最佳方式,因为它会保留所有的内嵌
  在每个参数里的任何空白。
  2.shell进程中的特殊状态变量
  $?:获取执行上一个指令的执行状态返回值(0为成功,非0为失败),常用
  $$:获取当前执行的shell脚本的进程号(PID),不常用
  $!:获取上一个在后台工作的进程的进程号(PID),不常用
  $_:获取在此之前执行的命令或脚本的最后一个参数,不常用
  3.bash shell内置变量命令
  bash shell包含一些内置命令。这些内置命令在目录列表里是看不见的,它们由shell本身提供。常用的内部命令有:
  echo、eval、exec、export、read、shift。
  echo:在屏幕上输出信息
  命令格式:echo args
  参数:
  -n:不换行输出内容
  -e:解析转义字符
  转义字符:
  \n:换行
  \r:回车
  \t:制表符(tab)
  \b:退格
  \v:纵向制表符
  eval:
  命令格式:eval args
  功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令,然后执行
  exec:
  # vim exec.sh
  # cat exec.sh
  #!/bin/bash
  exec1.txt
  # cat 1.txt
  1
  2
  3
  4
  5
  # sh exec.sh
  1
  2
  3
  4
  5
  ok

页: [1]
查看完整版本: shell--特殊位置参数变量及常用内置变量