xshell里的引号
单引号 :所见所得 吃啥吐啥
双引号 : 里面的特殊符号会被解析
什么是shell?
命令解释器,负责翻译我们输入的命令,执行成功返回给用户
linux默认的shell是(bash)
什么是shell脚本
命令的集合 很多可执行命令放在文本中成为shell脚本
shell脚本规范(为自动化准备)
- 必须放在同一的目录
- 脚本必须以.sh结尾
- 脚本开头有注释 #!/bin/bash 必须是第一行 以外的都是注释
- **脚本的注释信息 **
- 建议注释使用英文
- 成对的符号和语法一次性写完
- 脚本名称的命名 最好见名知意
shell特殊位置变量
- $0:代表了脚本的名称,如果全路径执行 则脚本名称带全路径
[root@localhost ~]#sh test.sh test.sh [root@localhost ~]#sh /etc/test.sh /etc/test.sh [root@localhost ~]#basename /etc/test.sh test.sh test.sh内容: #!/bin/bash echo $0
- $n 脚本的第n个参数 0被脚本名称占用 从1开始 9后面的参数要用{} 括起来 {10}
[root@localhost ~]#sh /etc/test.sh oldboy1 oldboy2 oldboy1 oldboy2 test.sh内容: #!/bin/bash echo $1 echo $2 [root@localhost ~]#echo -e '#!/bin/bash\necho `pwd`' >test.sh [root@localhost ~]#sh test.sh /root
- $# 获取脚本传参的总个数
- ∗ 获 取 脚 本 所 有 的 参 数 , 不 加 括 号 和 ∗ ∗ ∗ ∗ * 获取脚本所有的参数,不加括号和 ** ** ∗获取脚本所有的参数,不加括号和∗∗∗∗@ 相同 加上双引号 则把参数视为一个参数
- @ 获 取 脚 本 所 有 的 参 数 , 不 加 括 号 和 ∗ ∗ ∗ ∗ @ 获取脚本所有的参数,不加括号和 ** ** @获取脚本所有的参数,不加括号和∗∗∗∗ 相同 加上双引号 则把参数视为一个参数*
- $? 获取上一条命令的返回结果 0为成功 非0失败
[root@localhost ~]# echo 1 1 [root@localhost ~]# echo $? 0 [root@localhost ~]# ll xxxxx ls: cannot access xxx: No such file or directory [root@localhost ~]# echo $? 2
- $$:获取脚本的PID
- $!:获取上一个在后台运行脚本的PID 调试使用
- $_:获取命令行最后一个参数
字符串的删除和替换
- #** 从前往后匹配删除 ## 贪婪匹配 **
[root@localhost ~]# url=www.baidu.com [root@localhost ~]# echo ${url} www.baidu.com [root@localhost ~]# echo ${url#*.} baidu.com [root@localhost ~]# echo ${url##*.} com
- %** 从前往后匹配删除 %% 贪婪匹配 **
[root@localhost ~]# url=www.baidu.com [root@localhost ~]# echo ${url} www.baidu.com [root@localhost ~]# echo ${url%.*} www.baidu [root@localhost ~]# echo ${url%%.*} www
- /** 从前往后匹配删除 // 贪婪匹配 **
[root@localhost ~]# echo ${url} www.baidu.com [root@localhost ~]# echo ${url/w/a} aww.baidu.com [root@localhost ~]# echo ${url//w/a} aaa.baidu.com