Shell脚本
Shell脚本
(打印带颜色的:echo -e "\033[32m------------------------\033[1m")
``:执行命令
1、固定格式:
脚本第一行:#!/bin/bash
脚本第二行:# 简介功能
脚本第三行:# 作者
2、引用变量:$(变量名和等号之间不能有空格:name="zhangsan")
$n:第几个变量
$* 与 $@ :所有变量
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)
$?:命令执行是否正确
$#:共有几个变量
3、if条件语句
格式:
if (表达式)
语句一
else
语句二
fi
if判断大小:
num1=100
num2=200
if (($num1 > $num2));then
echo "num1 > num2"
fi
4、常用逻辑运算符解析(使用中括号两边加空格)
-f:判断文件是否存在 eg: if [ -f filename ];then
-d:判断目录是否存在 eg: if [ -d dir ];then
-eq : 等于 -ne : 不等于 -lt : 小于 -gt : 大于 -le : 小于或等于 -ge : 大于或等于 -a : 双方都成立(and) -o : 单方成立(or) -z : 空字符串
5、for循环格式
for 变量 in 字符串
do
语句一
done
6、case语句
case 变量 in
情况1)
语句1
;;
情况2)
语句2
;;
* )
其他情况
;;
esac
7、select 选择语句(一般用于选择菜单的创建,可以配合使用PS3(固定变量)来做菜单的打印输出信息)
PS3="What do you like most of the open source system?"
select i in CentOS RedHat Ubuntu
do
echo "Your Select System is : " $i
Done
8、shell编程函数
function 函数名 () {
command1
……
}
9、Shell 数组:bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
定义数组:在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n)
读取数组:${数组名[下标]}
获取数组的长度: length=${#array_name[@]}
10、sed(在不打开文件的情况下添加或替换内容)Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。
sed -i 's/192/10/g' text.sh (把所有192替换为10,不加-i是预修改,加-i 是真实修改)
sed 's/^/&id /g' text.sh (把每行开头添加"id ")
sed '/hello/a #####' (在hello的下一行添加#####,/i 是在hello的上一行添加#####)
sed -n '/hello/p'
cat number.txt | sed 's/ /\n/g' | grep -v "^$" | sort -nr | sed -n '1p;$p' 输出最大和最小值(把空格换成换行,-v 去除,-nr 从大到小排序,-n 打印)

浙公网安备 33010602011771号