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-->
其中【】中每个字符都要留空格
与其他语言不同的判断条件
| 整数 |
| 字符串 |
相同 | -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-->