一、for循环
for 变量in列表
do
command1
command2
......
done
例1:vim test.sh#! /bin/bash
for str in name.list
do
echo $str
done
例2:vim tesh.sh#! /bin/bash
for((i=0;i<10;i++))
do
echo $i
done
例3:vim test.sh
#! /bin/bash
array=(a b c d 1 2 3)
for i in ${array[*]}
do
echo $i
done
二、if语句1、shell的if判断是0 为真,走then语句,与c语言(非零为真)相反。
if [条件表达式]
then
command1
else
command2
......
fi
2、条件表达式:(1)文件表达式
if [-f file] 如果文件存在
if [-d dir] 如果文件夹存在
if [-s file] 如果文件存在且非空
if [-r file] 如果文件存在且可读
if [-w file] 如果文件存在且可写
if [-x file] 如果文件存在且可执行
(2)整数变量表达式
if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
(3)字符串变量表达式( 字符串允许使用赋值号做等号)
If [ $string1 = $string2] 如果string1等于string2
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空(和-n类似)
例1:vim test_if.sh
#! /bin/sh rsync -avzP --delete /var/tmp/Control /backup/Control_bak/ if [ $? -eq 0 ] then echo 'rsync successful !!!' else echo 'faild' fi三、通配符、命令代换、单双引号
1、通配符
(1)* :匹配多个任意字符
(2)? :匹配一个任意字符
(3)[若干字符] :匹配方括号中任意一个字符的一次出现
2、命令代换:反引号``或者$()
例1:vim test_th.sh
#! /bin/bash DATE=`date` LL=$(ls -al) echo $DATE echo $LL
3、单引号''(保持字面值)和双引号""(可处理字符串中的特殊字符)
例1:vim test.sh
#! /bin/bash
echo '`date`' echo "`date`" echo '\\' echo "\\"
[test@localhost test-find]$ ./test.sh `date` 2017年 04月 17日 星期一 17:26:05 CST \\ \
4、字符串与数值之间的转换与计算
例1:vim test.sh
#! /bin/bash
svnci=`svn log -r {$TodayDirName}:{$Weeksago} |grep line |wc -l` svncou=$(($svnci-1))
双括号取值