1、基本知识
- shell脚本语言是Linux独有的,都是以xxx.sh的后缀文件。
- 执行shell脚本
/bin/base xxx.sh
./xxx.sh
sh xxx.sh
#!/bin/bash
#!/bin/sh
2、常用操作
- 这些都是一些常用的操作,更多可以参考《Shell从入门到精通》这本书
- 打印输出
### 打印输出
age=99
echo age= $age
### 查看当前的目录
echo path= $PWD
### 查看当前Shell脚本的名称
echo "当前Shell脚本的名称是:$0"
### 外部传值
echo "外部传入参数一是:$1"
echo "外部传入参数二是:$2"
### 判断上一次执行是否成功
echo "是否执行成功:$?"
### 获取外部传入了多少参数
echo "外界传入了多少参数:$*"
### 获取外部传入的参数数量
echo "外界传入的参数数量:$#"
### for循环
for i in `seq 1 20`
do
echo "for循环遍历的数字是:$i"
done
### for循环累加1~100
sum=0
for((f=0;f<=100;f++))
do
sum=`expr $f + $sum`
done
echo "for循环累加1~100的值为:$sum"
### while循环
i=0
while((i<100))
do
# 注意:这里的 不能直接 $i + 1 必须要 expr.... 才行的
i=`expr $i + 1`
echo "while循环遍历的值数字是:$i"
done
### 查找当前目录下,所有的.sh文件,进行打包操作
for i in `find /root -name "*.sh"`
do
tar -czf tt.tgz $i
done
### 读取我在控制台输入的信息且循环一直等待
while read lineVarAA
do
echo "-----$lineVarAA"
done
### if语句,其中then代表触发点
NUM1=100
NUM2=200
if((NUM1>=NUM2)); then
echo "NUM1大于等于NUM2"
else
echo "NUM2大于NUM1"
fi
- 判断目录是否存在,如果存在就提示已经存在,如果不存在,就创建此文件夹
### 判断目录是否存在,如果存在就提示已经存在,如果不存在,就创建此文件夹
if [ ! -d `pwd`/testDir ]; then
mkdir -p `pwd`/testDir
else
echo "testDir 目录已经存在了"
fi
### 算数运算符,不用空格
result=$((100+200))
echo "算数运算符执行结果:$result"
### 判断字符串是否相等
if [ $var1 = $var2 ]
then
echo "var1不等于var2"
else
echo "var1等于var2"
fi
### 判断字符串是否为空
if [ $var1 ]
then
echo "字符串不为空,值是 $var1 "
else
echo "字符串为空"
fi
- 重定向,屏幕文件标识为0,重定向就是将一个指定文件重定向到屏幕文件0上,从而显示出来
### 重定向,屏幕文件标识为0,重定向就是将一个指定文件重定向到屏幕文件0上,从而显示出来
cat 0< file01.txt
### 函数,后续要执行直接写函数方法名
function test01() {
echo "我是一个函数"
}
test01
### 函数中使用局部的变量
function test02() {
var1="Kevin"
var2="Kevin2"
echo $var1
echo $var2
echo "test02 method run ..."
}
test02
### 传递参数给函数
function test03(){
echo "test03 method run 参数是:`expr $1`"
echo $1
}
test03 999999