1.Shell概述
Shell是一个命令行解释器,接收应用程序/用户命令,然后调用操作系统内核。
Shell易编写,易调试灵活性强。
2.Shell基础
格式:以#!/bin/bash开头
#!/bin/bashecho "hello world";
1.sh/bash xxx.sh2.输入脚本的绝对路径或相对路径执行脚本chmod +x xxx.sh 赋予权限3.source xxx.sh. xxx.sh
3.Shell变量
1.系统变量 查看系统变量:env printenv 常用系统变量:$HOME $PWD $SHELL $USER 查看变量:set
echo $HOMEecho $PWDecho $SHELLecho $USER
2.自定义变量 格式:变量名=变量值 等号前后不能有空格 撤销变量:unset 变量名 声明只读变量:readlonly 变量名 提升为全局变量:export 变量名
#!/bin/bashecho "hello world";a=Linux;echo $a;
hello worldLinux
[root@test scripts]# a=$((1+5))[root@test scripts]# echo $a;6[root@test scripts]# a=$[5+5][root@test scripts]# echo $a;10
4.Shell的特殊变量
$n:n为数字,$0代表该脚本的名称,$1-$9代表第1~第9个参数,10以上的参数,需要用大括号包含,例如${20}
#!/bin/bashecho '=====$n====='echo script name:$0echo 1st paramater: $1echo 2nd paramater: $2
[root@test scripts]# source test.sh aaa bbb=====$n=====script name:-bash1st paramater: aaa2nd paramater: bbb
$#:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性
#!/bin/bashecho '=====$n====='echo script name:$0echo 1st paramater: $1echo 2nd paramater: $2echo '=====$#====='echo paramater numbers: $2
[root@test scripts]# source test.sh aaa bbb=====$n=====script name:-bash1st paramater: aaa2nd paramater: bbb=====$#=====parameter numbers: 2
$/$@ 获取命令行的所有参数,$是把所有参数看做一个整体,$@把每个参数区分对待
#!/bin/bashecho '=====$n====='echo script name:$0echo 1st paramater: $1echo 2nd paramater: $2echo '=====$#====='echo parameter numbers: $#echo '=====$*====='echo $*echo '=====$@====='echo $@
[root@test scripts]# source test.sh aaa bbb=====$n=====script name:-bash1st paramater: aaa2nd paramater: bbb=====$#=====parameter numbers: 2=====$*=====aaa bbb=====$@=====aaa bbb
$?:最后一次执行时命令的返回状态,若值为0,代表上一个命令正常执行,若值不为0,则证明上一个命令没有正常执行
[root@test scripts]# parameter.sh-bash: parameter.sh: 未找到命令[root@test scripts]# echo $?127[root@test scripts]#
