071_扩展篇_Shell编程(三)_变量(四)_特殊变量 如果要执行一个脚本,需要用相对路径或是绝对路径, 如果想直接输入脚本名字执行,可以吧脚本放到 /bin 目录下, 但是不推荐这样做。 可以添加到环境变量中 $PATH 特殊变量 $n 基本语法 $n 功能描述 n为数字, $0 代表该脚本名称 $1-9 代表第一到第九个参数 ${10} 10以上的参数需要用大括号包含 实例 #!/bin/bash # 单引号可以输出原本的内容,不会将$n作为变量 echo '========$n========' echo 脚本名字 $0 echo 输入参数1 $1 echo 输入参数2 $1 [root@hadoop100 tf]# ./parameter.sh abc def ========$n======== 脚本名字 ./parameter.sh 输入参数1 abc 输入参数2 abc $# 基本语法 $# 功能描述 获取所有输入参数的个数, 常用于循环,判断参数的个数是否正确, 以及加强脚本的健壮性。 实例 #!/bin/bash # 单引号可以输出原本的内容,不会将$n作为变量 echo '========$n========' echo 脚本名字 $0 echo 输入参数1 $1 echo 输入参数2 $1 echo '========$#========' echo 输入参数个数 $# [root@hadoop100 tf]# ./parameter.sh abc ========$n======== 脚本名字 ./parameter.sh 输入参数1 abc 输入参数2 abc ========$#======== 输入参数个数 1 $* 基本语法 $* 功能描述 这个变量代表命令行中所有的参数, $* 把所有的参数看成一个整体。 实例 #!/bin/bash # 单引号可以输出原本的内容,不会将$n作为变量 echo '========$n========' echo 脚本名字 $0 echo 输入参数1 $1 echo 输入参数2 $1 echo '========$#========' echo 输入参数个数 $# echo '========$*========' echo $* echo '========$@========' echo $@ [root@hadoop100 tf]# ./parameter.sh abc def ========$n======== 脚本名字 ./parameter.sh 输入参数1 abc 输入参数2 abc ========$#======== 输入参数个数 2 ========$*======== abc def ========$@======== abc def $@ 基本语法 $@ 功能描述 这个变量代表命令行中所有的参数, $@ 把每个参数区分对待 实例 #!/bin/bash # 单引号可以输出原本的内容,不会将$n作为变量 echo '========$n========' echo 脚本名字 $0 echo 输入参数1 $1 echo 输入参数2 $1 echo '========$#========' echo 输入参数个数 $# echo '========$*========' echo $* echo '========$@========' echo $@ [root@hadoop100 tf]# ./parameter.sh abc def ========$n======== 脚本名字 ./parameter.sh 输入参数1 abc 输入参数2 abc ========$#======== 输入参数个数 2 ========$*======== abc def ========$@======== abc def $? 基本语法 $? 功能描述 最后一次执行的命令的返回状态。 如果这个变量的值为0,证明上一个命令正确执行; 如果这个变量的值为非0(具体值由命令自己来决定),证明上一个命令执行不正确。 实例 [root@hadoop100 tf]# ./hello.sh hello world [root@hadoop100 tf]# echo $? 0 [root@hadoop100 tf]# hello.sh bash: hello.sh: 未找到命令... [root@hadoop100 tf]# echo $? 127