近来正在学习Linux shell script,主要是学习Linux Shell Scripting Tutorial (LSST) v1.05r3的几个章节,但因为是英文的所以这里把它翻译下,也是自己加深印象。好了直接进入主题。
1.How to write shell script ?
a.首先用任何的编译器(vi,vim,kwrite,....)编写一个shell script;
b.然后按照下面的方法给你编译的shell script添加可执行属性;
chmod 添加(删除)属性 文件名称
例如:
chmod +x your_script_name 或者
chmod 755 your_script_name
例子中第二中方法中755表示对三个不同类别的使用者设置属性,这里首先大家要知道Linux中的除了可以用r,w,x表示可读,可写,可执行的属性外,还可以用一个数字代表一种属性,分别是r-4,w-2,x-1,也就是4就表示可读,2表示可写,1表示可执行;那么如何设置这些属性呢?如果我们用常规的方法是通过“+、-”符号来设置的,也就是"+r"表示给某个文件加上可读属性,"-r"表示给某个文件去除可读属性;
在用数字表示中是这样设定属性的,用数字设定属性更加的方便快捷,一次可以设定三个类别使用者的属性“文件拥有者”、“文件拥有者所在的组成员”、“其它使用者”,上面的例子中,7是给文件拥有者设定的属性,那"7"是什么意思呢?其实就是各个属性数字相加的结果,也就是如果你要设定此类使用者用可读4,可写2,可执行1,属性,那么就是4+2+1 = 7;聪明的你可能已经知道了文件拥有者所在地组成员的属性是 可读 可执行 即:4+1 = 5 ,其它使用者的属性也是 可读 可执行 即:4+1 = 5. 好了属性设定就不扯了,关键是要记住chmod命令。
c.编译好了脚本以后就是执行了
这里提供两种方法执行你的脚本:
bash your_script_name #这里的“#”号中Linux shell script中是表示其后的内容为注释;bash 是我们系统中的shell类型这里就不扯远了
./your_script_name #建议大家就直接用“./”接你的脚本名称执行,为什么不能像Windows一样直接输文件名执行呢?这个问题请自己找答案
好了,我们现在把上面的连贯做一遍;
首先建立一个脚本,我在这里使用vi编译器。
$ vi first
内容如下:
#
# My first shell script
#
clear
echo "Knowledge is Power"
保存退出;
然后添加可执行属性;
$ chmod 755 first
最后执行
$ ./first
你将会在屏幕上看到 "Knowledge is Power"。
第一课到这里就结束了,你学会了吗?
练习题:
1)编写如下的脚本内容,保存,然后执行记下它的输出。
$ vi ginfo |