if 条件判断
if (()); then
echo "OK";
elif (()); then
echo "OK";
else
echo "Not OK";
fi
-f 判断文件是否存在 if [ -f 文件名 ]
-d 判断目录是否存在 if [ -d 目录名 ]
-eq 整型 ==
-ne 整型 !=
-lt 整型 <
-gt 整型 >
-le 整型 <=
-ge 整型 >=
-z 空字符串判断
格式化输出
echo -e "\033[32m this is xxx \033[0m"
常量
$0 当前脚本名
$1 参数1
$n 输入的第n个参数
循环
for 变量 in 字符串
for ((i=0;i<=100;i++))
do
循环体
done
--------------------------------
for i in ` find /var/log/ -name "*.log"`
do
循环体
done
while
while [[ 条件 ]]; do
循环体
done
read 交互命令
read -p "please input a number" input
echo $input
< 导入命令
while read line
do
echo "$line"
done </etc/hosts
循环内的计数,注意加号前后要有空格
index=1
index=`expr ${index} + 1`
Until 循环(直到条件满足才推出)
until 条件
do
action
done;
case 语句
case $arg in
pattern1)
...
;;
pattern2)
...
;;
*)
...
;;
esac
select 语句
select i in 变量
do
action
done
变量
局部变量
全局变量
变量引用:$变量
$0 当前程序的名称
$n 当前程序的第n个参数,n=1,2,3,4,5..
$# 当前程序的参数个数(不包括程序本身)
$? 命名或程序执行完以后的状态,一般返回0表示执行成功
$UID 当前用户的id
$PWD 当前所在的目录
数组
数组的定义,一般以括号的方式来定义,A=(1 2 3)
数组的引用:echo ${A[0]},从0开始
{A[@]} 全部
数组个数:{#A[@]}
函数 function name() {}
awk、sed命令
sed 's/old/new/g' 文件名;全文件替换
sed 's/^/& /g' 文件名;文件行首添加空格
sed '/old/a 追加内容' 文件名; 在指定位置后添加一行
sed -n '1p' 取首行
sed -n '$p' 取尾行
find 查找命令
find path -name "关键词"
find . -name "a.txt" -exec cp {} /temp/ \; 查找并拷贝
find . -name "a.txt" -exec rm -rf {} \; 查找并删除
字符串函数
zch=abcd
${#zch} 获取字符串长度
${zch:position:n} 从指定position位置(从0 开始),截取n长度的