Unix Shell脚本编程知识点总结及范例
脚本编程语言与编译型语言:
脚本编程语言:(Bash)
脚本编程语言通常是解释型(interpreted),主要由解释器(interpreter)读入程序代码,并将其转换成内部的形式加以执行。
优点:
能够轻易处理文件与目录之类的对象。
缺点:
运行效率通常不如编译型语言
编译型语言:(C、C++、Java、Fortran、Ada、Pascal)
编译型语言多半运作于底层,所处理的是字节、整数、浮点数或其它及其机器层经的对象。
SHELL脚本的基本语法格式:
脚本必须以#!开头:(# cat /etc/shells)
例如#!/bin/bash(解释器)
# 其中间可以添加一些注释信息,例如脚本的使用方法、脚本的功能、创建日期、作者等相关信息
然后赋予脚本具有执行权限,# chmod +x scripts.sh
执行则使用./scripts.sh ##也可以将此脚本的路径添加到PATH变量中,以后直接使用脚本名称直接运行。
脚本的测试工具bash:
-n:检查脚本是否有语法错误,有则显示错误信息,否则无信息(没有消息才是最好的消息)
-x:检查脚本在执行中的详细过程(排错时,经常会用到)
exit:退出脚本(其数值为0-255)
如果脚本没有明确定义退出码,那么在执行脚本结束前的退出码为此脚本的退出码。
# echo $? ##查看上一个命令执行结果所显示的状态码
SHELL脚本的逻辑关系总结:
逻辑与:符号为&&:
如果其中一个为假,则结果一定为假
如果第一个条件结果为假,则第二个条件不用再判断,最终结果已显示
如果第一个条件结果为真,则第二个条件必须判断
范例:
# useradd RedHat && echo "redhat" | passwd --stdin redhat
解说:如果useradd redhat执行成功,则继续执行下一条命令,否则终止。
逻辑或||:
如果其中一个条件结果为真,则结果一定为真,不用检查后面的语句
如果其中一个条件结果为假,则检查下一个条件语句
范例:
# id redhat || useradd redhat
解说:如果redhat用户存在,就显示redhat用户相关信息,否则添加此账户。
逻辑与和逻辑或联合使用范例:
# id redhat && echo “redhat already existing“ || useradd redhat
解说:如果redhat用户存在,则显示redhat用户已存在,否则添加此账户。
条件判断语句总结:
- 单分支if语句 双分支if语句 多分支if语句 case选择语句
- if 判断条件 ;then if 判断条件;then if 判断条件;thencase $1 in
- statement statement statement string)
- ...... ........ ......... statement;;
- fi else elif 判断条件;then string2)
- statement statement statement;;
- ..... ......... ......)
- fi elif 判断条件;then statement;;
- statement esac
- .........
- else
- statement
- fi
范例: