顶嵌学员学习笔记:Shell脚本编程总结

来源:互联网 发布:程序化交易软件试用 编辑:程序博客网 时间:2024/04/29 16:25

Shell是一种有特殊功能的程序,它是用户和内核程序的一个接口。使用Shell可以编写脚本,脚本是一种按行解释的程序。

脚本的编写一般都是从#!/bin/sh开始的,编写完一个脚本后,想要要执行它,首先,要让脚本获得执行的权限,添加权限使用chmod命令,其格式为chmod [u/g/o/a] [+/-/=] [权限]filename

例如:

脚本内容

#/bin/sh

mkdir ~/test

echo "mkdir successfuuly"

为其添加权限

chmod 777 test.sh

./test.sh

执行结果为:

mkdir successfuuly

第一个7为当前用户对该脚本可读可写可执行,第二个7为同组用户对该脚本可读可写可执行,第三个7为其他用户对该脚本可读可写可执行,

Shell命令中有一些具有特殊意义的字符,使用这些字符可以简化一些变量的输入。

$?最后一次执行的命令的返回码

$$shell进程自己的PID

$!Shell进程最近启动的后台进程的PID

$#命令行参数的个数(不包括脚本文件的名字在内)

$0脚本文件本身的名字

$1 $2第一个,第二个命令行参数

"$*"$1,$2,$3,$4将所有命令行参数组织成一个整体,作为一个单词

"$@"$1"$2""$3"将多个命令行参数看做是多个“单词”

使用脚本也可以调用C代码,例如:

C代码:

int main(int argc,char **argv)

{

 int i;

 for(i=0;i<argc;i++)

 printf("%d:[%s]/n",i,argv[i]);

}

gcc arg.c -o arg编译这段C代码Shell脚本如下:

#!/bin/sh

echo $$

echo $#

echo "usage:$0 arg1 agr2"

./arg "$@"

./arg "$*"

获得执行权限:shmod 7 t3.sh

./t3.sh copy files to $HOME

执行结果:

2515

0

usage:./t3.sh arg1 arg2

0:[./arg]

1:[copy]

2:[files]

3:[to]

4:[/root]

0:[./arg]

1:[copy files to /root]

选择结构

if结构,case结构

循环结构

while结构

until结构

for结构

for结构实例代码

#!/bin/sh

counter=0

read d                   #读入文件目录字符串

b=$d                    #另存文件目录

d="$d/*"                 #给目录尾部加上/*,这样$d就为当前目录文件

for files in $d             #for循环统计文件数

do

counter=`expr $counter + 1`

done

echo "there are $counter files in $b"

给与执行权限chmod 7 s.sh

./s.sh             #运行脚本

/mywork          #输入文件目录

执行结果为:

there are 6 files in /mywork

用这个脚本可以方便统计输入的文件目录中的文件个数。

 

在使用Shell脚本编写程序的时候可以看到,Shell命令的语法和C语言的语法有很大的相似之处,从这里我体会到了老师说的只要能熟练的掌握C语言,想要换到其他的语言上是十分容易的。

顶嵌学员马斌09.10.17