给大家带来Shell里的流程把持\函数及\剧本调试
欢迎大家来到仓酷云论坛!先容Shell中的流程把持,比方判别语句等等…if语句:
起首懂得几个常识:
[-f"somefile"]:判别是不是是一个文件
[-x"/bin/ls"]:判别/bin/ls是不是存在并有可实行权限
[-n"$var"]:判别$var变量是不是有值
["$a"="$b"]:判别$a和$b是不是相称
示例代码:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
varOne=1
varTwo=2
varThree=3
if["$varOne"="$varTwo"];then
echo"varTwo:$varTwo"
elif["$varOne"="$varThree"];then
echo"varThree:$varThree"
else
echo"varOne:$varOne"
fi
务必注重,[]对照的时分其括号前后的空格别忘了!=等号前后也要有空格也要注重;
&&和||操纵符:
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
varOne=1
varTwo=2
varThree=3
if["$varOne"="$varThree"]||["$varOne"="$varTwo"];then
echo"||进进"
else
echo"No||进进"
fi
if["$varOne"="$varOne"]&&["$varOne"="$varTwo"];then
echo"&&进进"
else
echo"No&&进进"
fi
case语句:
须知:
case表达式能够用来婚配一个给定的字符串,而不是数字(可别和C言语里的switch…case搅浑)。
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
ftype=`file"$1"`#Noteand`isdifferent
case"$ftype"in
"$1:Ziparchive"*)
unzip"$1";;
"$1:gzipcompressed"*)
gunzip"$1";;
"$1:bzip2compressed"*)
bunzip2"$1";;
*)echo"File$1cannotbeuncompressedwithsmartzip";;
esac
特别变量$1,该变量包括有传送给该剧本的第一个参数值,也就是说,$1就是字符串articles.zip。
select语句:
select表达式是bash的一种扩大使用,善于于交互式场所。用户能够从一组分歧的值中举行选择:
1
2
3
4
selectvarin...;do
break;
done
....now$varcanbeused....
示例代码:
1
2
3
4
5
6
7
#!/bin/sh
echo"WhatisyourfavouriteOS?"
selectvarin"Linux""GnuHurd""FreeBSD""Other";do
break;
done
echo"Youhaveselected$var"
假如以上剧本运转呈现select:NOTFOUND将#!/bin/sh改成#!/bin/bash该剧本的运转了局以下:
1
2
3
4
5
6
7
WhatisyourfavouriteOS?
1)Linux
2)GnuHurd
3)FreeBSD
4)Other
#?1
YouhaveselectedLinux
while/for轮回:
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
varOne=1
varTwo=1
#while
while["$varOne"="$varOne"];do
echo"whileDone"
break
done
#for
forvarStrinHIMI;do
echo"varStris$varStr"
done
输入:
1
2
3
4
5
6
whileDone
varStrisH
varStrisI
varStrisM
varStrisI
localhost:DesktopHimi$
select语句:
须知:select表达式是bash的一种扩大使用,善于于交互式场所。用户能够从一组分歧的值中举行选择:
示例代码:
1
2
3
4
5
6
#!/bin/sh
echo"Whatisyourfavourite?"
selectvarin"iOS""Android""Himi""Other";do
break;
done
echo"Youhaveselected$var"
实行剧本后,守候用户输出,然后在终端输出你的选择,回车,以下显现:
1
2
3
4
5
6
7
8
Whatisyourfavourite?
1)iOS
2)Android
3)Himi
4)Other
#?3
YouhaveselectedHimi
localhost:DesktopHimi$
函数:
假如你写过对照庞大的剧本,就会发明大概在几个中央利用了不异的代码,这时候假如用上函数,会便利良多。函数的大抵模样以下:
1
2
3
4
5
6
functionname()
{
#insidethebody$1isthefirstargumentgiventothefunction
#$2thesecond...
body
}
示例代码:
1
2
3
4
5
6
7
#!/bin/sh
himi()
{
echo"Functionisok"
exit0
}
himi
剧本调试:
最复杂的调试***固然是利用echo下令。你能够在任何嫌疑堕落的中央用echo打印变量值,这也是年夜局部shell步伐员消费80%的工夫用于调试的缘故原由。Shell剧本的优点在于无需从头编译,而拔出一个echo下令也不必要几工夫。shell也有一个真实的调试形式,假如剧本”strangescript”堕落,可使用以下下令举行调试:
sh-xstrangescript
上述下令会实行该剧本,同时显现一切变量的值。shell另有一个不实行剧本只反省语法的形式,下令以下:
sh-nyour_script
OK,本章次要是为了熟习一些把持语句和经常使用常识点,那末到这关于Shell编程基本进修熟悉就算告一段落,若有需要今后会持续深切进修;临时足以;
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
给大家带来Shell里的流程把持\函数及\剧本调试
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。 当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。 在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。 工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。 熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种: 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。 熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种: 我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
页:
[1]