开始学习吧:
Shell 语法 :
1.变量
Linux是区分大小写的系统;使用变量名前面加上$来访问变量的内容,为变量赋值时,只是需要变量名,变量会根据需要自动创建
$salutation=hello
$echo $salutation
hello
$salutation="YesDear"
$echo $salutation
YesDear
1.1 read 命令等待用户输入并且赋值
$read salutation
Wiegeht's
$echo $salutation
Wiegeht's
双引号不会影响变量的替换,单引号和反斜杠不进行变量转换
$varTest="Test"
$echo $varTest
Test
$echo"$varTest"
Testg
$echo '$varTest'
$varTest
echo \$varTest
$varTest
$0:shell脚本的名字
$$脚本的进程号,脚本通常使用它生成一个临时文件eg:/tmp/tmpfile_$$
$#传给给脚本的参数个数
2.条件
test或[命令
eg1:检查一个文件是否存在
if test -f fred.c
then
....
fi
or
if[ test -f fred.c]; then
....
fi
ps:[ A ]和检查内容A之间需要空格,如果想if和then同一行,那么需要分号
2.1字符串比较
str1 = str2 相等为真
str2 != str2 不相等为真
-n str1 不为空为真
-z str1 为空为真
2.2数字比较
A -eq B 相等为真
A -ne B 不相等为真
A -gt B A>B
A -ge B A>=B
A -lt B A<B
A -le B A<=B
2.3文件条件测试
-d file 为目录为真
-e file 存在为真,尽量使用-f
-f file 存在为真
-g file 如果文件的set-group-id位被设置则为真
-r file 可读为真
-s file 大小不为0为真
-u file 如果文件的set-user-id位被设置则为真
-w file可写为真
-x file可执行为真
2.4控制结构
(1).if语句
if condition
then
statements
else
statements
fi
(2).elif语句
#!/bin/sh
echo"Ii't morning? Please anser yes or no"
read timeofday
if[ "$timeofday"="yes" ]
then
echo"Goodmorning"
elif [ "$timeofday"="no" ];then
echo"Goodafternoon"
else
echo "Sorry,$timeofday not recognized,Enter yes or no"
exit1
fi
exit0
本次语法笔记结束,下次继续shell语法(2)