2795|2

68

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

顶嵌嵌入式学习笔记:Shell编程总结 [复制链接]

来源:顶嵌嵌入式培训
作者:顶嵌学员-马斌

       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
printf("%d:[%s]\n",i,argv);

}

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语言,想要换到其他的语言上是十分容易的。

顶嵌学员:马斌
2009年10月17日


[ 本帖最后由 topembedded 于 2009-10-21 14:59 编辑 ]

最新回复

学习一下!  详情 回复 发表于 2009-10-22 14:17
点赞 关注
个人签名顶嵌与您一起关注嵌入式行业!
http://www.top-e.org/

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 
学习一下!
 
个人签名处处留心皆学问!
 

回复

68

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
都是学员总结的
 
个人签名顶嵌与您一起关注嵌入式行业!
http://www.top-e.org/
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表