Bash shell脚本的语法结构
目的:自我整理,自我回顾,自我反省!
内容:干货!干货!!干货!!!
附加:不足之处希望大家指正,能给像我一样的菜鸟一点启发就最好啦。仅仅是启发。。。
感谢:感谢老男孩(老看您的博文和视频,O(∩_∩)O哈哈~),当然还有网上的各路技术大牛,参考书籍《UNIX shell》
Bashshell 脚本结构
#/bin/shshbang行,脚本解释器。
如:#/bin/csh,#/bin/awk...等
#注释。
如:This doc is writed chbo.
shell元字符或通配符*,'',"",?,[],|,>,>>等
如:rm ./*
显示输出echo "Hello,Chbo."局部变量var=value
var='value'
var="value1 value2"
---命令结果赋值给变量---
var=`cmd`
var=$(cmd)
环境变量---临时生效---
export var=value
var=value ;export var
---永久生效---
写入:/root/.bash_profile /root/.bashrc
常写入:/etc/profile
脚本目录:/etc/profile.d
查看变量echo $var_name
echo $PATH
$0 :打印自身
$n :${10}
$? :echo $? 判断命令执行结果
$# :传参个数
如:
[root@chboa 02]# cat 4.sh
[ $# -ne 2 ] && {
echo "must two"
exit 1
}
echo haha
传参---交互式---
[root@chbo ]# read -t 5 -p "pls input:" a
pls input:33
[root@chbo ]# echo $a
33
---非交互式---
var1=$1
var2=$2
算术运算1、((n=1+2))
2、n=`expr 5 + 9`
3、let n=1+2
4、n=`echo 3+3|bc`
5、n=$[2+3]
方式一:test
方式二:[]
方式三:[[]]
---数值比较--------------------------------
-eq -ge -gt -le -lt -ne
如:[$1 -eq $2]
---字符串比较------------------------------
= !=
-n str1 检查str1的长度是否非0
-z str1 检查str1的长度是否为0
如:
[ "$str1" = "$str2" ]
[ -n "$str1" ]--->检查一个变量是否含有数据
注意:
1、加 “ ”
2、=两边必须有空格
---文件比较--------------------------------
-e
-d -f-r-w-x(excute)-s(size)
-nt (new than)
-O 检查文件是否存在并属于当前用户所有
-G 检查文件是否存在默认组与当前用户相同
例如:
[ -s $file ] 检查文件是否存在并非空
[ $file1 -nt $file2 ] 检查file1比file2新
if [ -f $file ]
then
echo 0
else
echo 1
fi
<===>
[ -f $file ]&&echo 0||echo 1
-------------------------------------------
if [ ]
then
statements
elif
then
statements
elif
then
statements
else
statements
if
-------------------------------------------
case var_name in
pattern1)
statements
;;
pattern2)
statements
;;
pattern3)
statements
;;
*)
default value
;;
esac
for n in `seq 10`
do
echo 10.0.0.$n
done
---------------------------
while [ ]
do
commands
done
----------------------------
until [ ]
do
commands
done
函数function name(){
指令
return n
}
执行:
先定义函数,才能调用
调用函数,直接写函数名
sh script_name
chmod +x path/script_name;path/script_name
source script_name或. script_name
(当前shell可调用脚本里的内容)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。