linux shell脚本编写
Shell编程的介绍
首先要了解shell是命令解析器,将指令转换为相应的机器码能够运行的程序。
再者shell脚本是一系列命令序列的文本文件。
Linux中Shell脚本相当在windows系统中一个脚本文件,当你要关掉计算机的时候,只要关掉此脚本即可,ko!因为此脚本的文件里含有关闭计算机的命令。
在shell脚本里编程的时候,要注意一个问题,则#!/bin/bash?or/sh??etc。!与?/??必须要空一格。该路径是在bin下的应用文件bash??or??sh,在命令的窗口就不用按着路径了,本人就是吃这样的亏,弄了好久全是报解析错误。呵呵,可是我的耐心和努力终于ko了!当然在这里你要先设定执行权限,代码为:chmod??+x??filename.sh。执行代码为./filename.sh。这样可以得到结果了。
下面我完成一个完整的程序,代码如下:
#!?/bin/sh
#建立我的第一个shell程序,呵呵
echo?"hello??word"
上述的是shell脚本编程,echo表示要输出这行代码。下面的是在usr/local/shell下的端口操作,代码如下:
先是要进入root下;
root@luozhong/usr/local/shell#?chmod??+x?filename.sh
root@luozhong/usr/local/shell#./filename.sh
结果为:
hello,word
在shell脚本里设置变量与java,c,c++有点不同,他的变量,没有类型。Shell脚本的代码如下:
#!?/bin/sh
#set?a?variable?number
a="I?love?linux"
#print??number
echo??"A??is?:"
echo???$number
上述shell脚本的代码要注意三个方面1,$必须放在执行变量的前面没有空格;2,等号的左右不能有空格;3,每一行结束语没有分号。
有这一个变量在一个字符串里,要改变他的值,怎样办,shell脚本的代码如下:
num=2
echo?"this?is?the?numnd"
呵呵,我开始也觉得有意思,嗯,越学约有意思,呵呵。怎么让他输出像这样的代码了(this?is?the?2nd)。查了很久我终于知道了,只要改变一个地方即可(echo?"this?is?the?${num}nd"),运行这行脚本语言得到的结果就是我想要的呵呵,又ko一个问题。呵呵!
在shell脚本当中“#”表示注释这一行。
?
shell脚本语言与其他的语言也有些不同,比如运用条件语句的时候,他的if要与结束符运用fi代码如下:
if[?$1 -eq?$2?];
??? then?
? ?echo "hehe"
fi
??? else if[ $1 -gt $2]
???? then
?????? echo " "
??????? elif[ $1 -lt $2]
????????? then
???????????? echo "?? "
???????? fi
???? fi
fi必不可少
?
????
read??keypress
case?"keypress"??in
??? [?]?)??echo?"";;
[?]?)??echo?"";;
*?)???echo??"other";;
esac
esac必不可少
for??var??in??[?list?]?
do
echo??"???"
done
?
while[?list?]
do
echo?"??"
done
<!--EndFragment-->?
<!--EndFragment-->?
?
其中【】中每个字符都要留空格
与其他语言不同的判断条件
?
整数
?
字符串
相同
-eq
?
??=
不同
-ne
?
?!=
大于
-qt
?
??<
小于
-lt
?
??>
不小于
-ge
?
?
不大于
-le
?
?
为空
-z
?
?
不为空
-n
?
?
??-e??文件已知存在
??-f???普通文件
??-s???文件大小不为零
??-d????目录
??-r????对当前用户可以读取
??-w???对当前用户可以写入???
??-x???对当前用户可以执行
?
?
?
?
?
?
?
?
?
?
使用bash和sh应该是一样的,不知道为什么,在shell脚本里调用程序时候,使用sh出现了错误,可是使用bash没有报错,还输出了结果。Shell脚本语言代码如下:
#!/bin/sh
num="hell0"
echo?$num
function?func?{
?????local?num="hi"
?????echo?$num
}?
func
echo?$num
可惜的是报错了,但是用#!/bath/bash.
输出结果为:
hello
hi
hello
请牛人指点指点,呵呵,谢谢。
这是我花了几个小时所获得知识,从中我学到了许多,呵呵。慢慢的进步吧,嗯,linux系统我会学会你的,呵呵,ko“linux”是我最近的任务,呵呵。
<!--EndFragment-->