- 1.shell脚本调试技巧
- 2.Shell脚本自动化交互式
- 3.Shell的前后台
- 4.vi命令(编辑模式)
- 4.shell数组
- 5.shell数值
- 6 awk命令
- 7.字符串的分割
- 8.常用的linux命令
#1.Windows下编辑的脚本需要使用dos2unix格式化
dos2unix demo.sh
#2.使用bash命令参数调试
-n:不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示
-v:在执行脚本时,先将脚本的内容输出到屏幕上,然后执行脚本,如果有错误,也会给出错误提示
-x:将执行的脚本内容及输出显示到屏幕上,这是对调试很有用的参数
export PS4='+${LINENO}'可以在每一行的前面加上内容的行号
#3.使用set命令进行部分脚本调试
set-n:读命令但并不执行。
set-v:显示读取的所有行。
set-x:显示所有命令及其参数。
1.通过set-x命令开启调试功能,而通过set+x关闭调试功能
2.通过set-x命令开启调试功能,而通过set+x关闭调试功能
2.Shell脚本自动化交互式
1.Here document
格式
命令 << 分隔串(最为常见的为EOF) 字符串1 … 字符串n 分隔串
举例
root@localhost test]# cat test.sh #! /bin/bash read -p "enter number:" no read -p "enter name:" name echo you have entered $no, $name #然后我们利用重定向来完成交互的自动化: [root@localhost test]# ./test.sh <3.Shell的前后台1 >lp you have entered 1, lp
| 命令 | 含义 |
|---|---|
| fg( frontground) 前台执行 | Ctrl+z可以挂起前台运行的程序,用fg恢复到前台 |
| bg(background) 后台执行 | 在命令后面加上&它会在后台执行,并将特殊的环境变量$!设置为该任务的进程ID |
| 1 | 2 |
|---|---|
| 显示行号 | set nu |
| 跳转到指定的行 | 行数gg |
| 删除指定的行 | 行数dd |
| 删除所有内容 | ggdG |
| 跳转到文本末尾 | G |
| 跳转到当前行末尾 | A |
| 撤销 | u |
| 恢复上一步被撤销的 | ctrl+u |
| 从上往下查 | /字符 |
| 从下往上查 | ?字符 |
# 数组的定义
array_name=(a b)
# 传递所有的数组值
函数名 ${array_name[@]}
# 查看所有数组的索引
${!array_name[@]}
# 查看
${#array_name[@]}
5.shell数值
# 数值的定义 i=0 #不要有空格 # 数值的计算 let i=i+16 awk命令
awk -F [:|] # 正则匹配分割符号7.字符串的分割
${parameter/parttern/string}
用string来替换第一个匹配的pattern
${parameter//pattern/string}
用string来替换parameter变量中所有匹配的pattern
string="hello,shell,split,test"
array=(${string//,/ })
for var in ${array[@]}
do
echo $var
done
8.常用的linux命令
1.初始化项目权限: umask 007
2.查看xx.so文件属于那个库yum whatprovides xxx.so
3.查看磁盘空间:df -h
4.查看系统版本:cat /etc/*release
5.shell中常见的字符串操作
| 1 | 2 |
|---|---|
| -z | 检测字符串长度是否为0,为0返回 true。 |
| -n | 检测字符串长度是否不为 0,不为 0 返回 true。 |
6.logger的用法
| 1 | 2 |
|---|---|
| -i | 逐行记录每一次logger的进程ID |
| -t | 指定标记记录 |
#在/var/log/messages文件中记录为 lp[123456]:hello logger -i -t lp "hello"
7.shell 脚本中$ , , ,#,$?分别代表什么意思?
| 1 | 2 |
|---|---|
| $* | 这个程式的所有参数,此选项参数可超过9个。 |
| $# | 这个程式的参数个数 |
| $$ | 这个程式的PID(脚本运行的当前进程ID号) |
| $@ | 跟$*类似,但是可以当作数组用 |
8.shell脚本中字符串变量前加个x
#防止$var为空时报错 x"abcd" = x"$var"
9.read
| 1 | 2 |
|---|---|
| -p | 给出提示符。默认不支持"n"换行,要换行需要特殊处理 |
| -r | 禁止反斜线的转义功能.这意味着""会变成文本的一部分 |
read -p -r "Do you want install?"
10.getopt的使用



