编写一个脚本
vim test.sh
#!/bin/bash
#上面的是解释器 还有一种sh解释器 #!/bin/sh
A=10
#定义一个变量
echo $A
#输出变量
2.执行脚本,三种方式
1. /bin/bash test.sh
2. chmod 777 test.sh
./test.sh
3. sh test.sh
3. 查看上一个命令是否是成功的
echo $? # 0代表是成功的
4.查看磁盘的使用量
df -h
5.脚本里获取当前路径、名称以及参数
#!/bin/bash
echo "当前的路径是:$PWD"
echo "当前的路径是:`pwd`"
echo "当前shell名称是:$0"
echo "参数一是:$1"
echo "参数二是:$2"
#使用的时候可以传参数 sh test.sh 888 999
#这时候会把888 999赋值给$1 $2
#!/bin/bash
echo "----------------------------------------"
age=99
echo age=$age
echo pwd=$PWD
######################
echo "当前shell的脚本名称是:$0"
echo "参数一是:$1"
echo "参数二是:$2"
########################
echo "是否执行成功:$?"
echo "外界传递的参数是:$*"
echo "外界传递参数的数量:$#"
#上面脚本运行的结果:
sh test02.sh 999 888
----------------------------------------
age=99
pwd=/root/xiachenhui/studyNdk/study03
当前shell的脚本名称是:test02.sh
参数一是:999
参数二是:888
是否执行成功:0
外界传递的参数是:999 888
外界传递参数的数量:2
6. 函数操作
seq 1 20 会输出1-20的值,利用seq可以进行for循环
expr 1000 + 100 #这个是加法
#!/bin/bash
# 循环遍历
for i in `seq 1 20`
do
#这中间就是类似于括号
echo "循环遍历的数字是:$i"
done
#累加的功能 必须使用双括号,中间的各种空格需要注意
a=0
for((f=0;f<=100;f++))
do
a=`expr $f + $a`
done
echo "累加1到100的值是:$a"
7. 查找和压缩文件
查找所有的.txt文件 find . -name "*.txt"
把所有的文件打包压缩成all.taz文件 tar czf all.taz *
#!/bin/bash
#查找当前目录下的所有.txt文件 进行打包操作
for i in `find ./ -name "*.txt"`
do
tar -czf txtAll.tgz $i
done
8. while循环
#!/bin/bash
#while 循环解释器
i=0
while((i<=100))
do
i=`expr $i + 1`
echo "遍历i的值是:$i"
done
9. 读取文件
#!/bin/bash
#读文件,循环一直等待。。。输入文字,按回车即可
while read AA
do
echo -----------$AA
done
~
~
10. if操作
#!/bin/bash
NUM1=100
NUM2=200
# then 代表出发的点
if(($NUM1>$NUM2)); then
echo "OK............"
else
echo "NOT OK........"
#结束
fi
#!/bin/bash
#判断目录是否存在,如果不存在就创建,注意空格问题
if [ ! -d `pwd`/chenhuidir ]; then
mkdir -p `pwd`/chenhuidir
else
echo "chenhuidir 目录已经存在....."
fi
~
12. 字符串操作
#!/bin/bash
# 字符串
var1="abcde"
var2="zzzzzzzzz"
#判断是否相等,只有一个=号
if [ $var1 = $var2 ];then
echo "var1等于var2"
else
echo "var1不等于var2"
fi
# 字符串是否为空
if [ $var1 ]
then
echo "var1不为空,值是:$var1"
else
echo "var1为空"
fi
13. Linux 万物皆文件之重定向
cat 0< file01.txt 把file01.txt的内容重定向到屏幕文件,0代表shell的界面文件。
14. 函数
#!/bin/bash
function test01(){
echo "method test01 run...."
}
#调用上面的函数
test01
#变量操作
function test02(){
var1="xiachenhui"
var2="chenhui"
echo $var1
echo $var2
echo "method test02 run...."
}
test02
#给函数传参
function test03(){
echo "method test03 run...参数是:`expr $1`"
}
test03 666
#给函数传参2
function test04(){
echo "method test04 run...参数是:`expr $1`"
echo $1
}
test04 777
网友评论