Shell脚本

  1. 用途:完成特定的、较复杂的系统管理任务。
  2. 格式:集中保存多条Linux命令,普通文本文件
  3. 执行方式:按照预设的顺序依次执行的命令

执行Shell脚本的方式: 1.bash test.sh //不需要写解析器 //不需要给脚本设置执行权限 2. ./test.sh //需要写解析器——脚本首行 #!/bin/bash //需要给脚本设置执行权限 chmod a+x test.sh

写个Shell的小例子 test.sh:

#!/bin/bash
echo '23123123'
echo 'disk space:'
echo
df -Th
echo
echo 'free space:'
free -m

小例子:每周五17:30 清理FTP服务器的公共共享目录 检查/var/ftp/pub/ 目录,将其中所有子目录及文件的详细列表、当时的时间信息追加保存到/var/log/pubdir.log日志文件中,然后清空该目录 示例:

vi /opt/ftpclean.sh
 `#!/bin/bash
 date >> /var/log/pubdir.log
 ls -lhR /var/ftp/pub >> /var/log/pubdir.lg
 rm -rf /var/ftp/pub/*
 
 crontab -e
 30 17 * * 5  /opt/ftpclean.sh`

Shell变量种类

  1. 用户自定义变量 name="user1" 引用:${name}
  2. 预定义变量
  3. 位置变量**

输入赋值:read [-p "信息"] 变量名 双引号:能解析变量 单引号:不能解析变量 反引号:解析命令并输出

删除变量:unset 变量名 位置变量(传参):

test.sh
#!/bin/bash
#test.sh
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8

调用:sh test.sh 1 2 3 4 5 6 7 ...(最多识别9个) 执行结果: 1 2 3 4 5 6 7 ... 预定义变量: $#:命令行中位置参数的个数 $*:所有参数的内容 $?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0表示执行异常或出错 $0:当前执行的进程/程序名

shell计算 $(($1+$2)) (不需要转义*) or expr 2 + 3 +4 (需要转义*) expr 4 * 2 expr 4 / 2 expr 4 % 2 and so on...

shell输入、输出 输入 `` echo -n||e -n -e可以解析转义字符

//设置字体颜色 echo -e "httped process \033[32;40m[OK]\033[0m" \033[前景颜色;背景颜色m \033[0m恢复到系统默认的颜色 前景颜色:30-37 背景颜色:40-47 **输出** cat、head(首n行)、tail(尾n行)、tee(输出一份并保存一份)、nl(加行号) ``