码迷,mamicode.com
首页 > 系统相关 > 详细

戏说shell编程

时间:2017-08-03 20:33:42      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:linux

shell的重要性对每个system adminstrator来说不言而喻。今天阿拉就来浅谈一下那些年shell编程的酸与爽吧。

那我们就以一个入门级的编程实例入手。顺便搭配半斤八两的阿拉的脑袋瓜子。

编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和

这个题目咋一看,那就是两个变量的问题。

于是答案很快出来了。

忽略shebang和注释就是下面的样子:

echo $[`cat $file1 |grep ^$|wc -l`+`cat $file2 |grep ^$|wc -l`]

然后阿拉得意的复制了上面这串代码到命令行执行了。

        技术分享

        嗯?光标闪啊闪的。哦,对了,忘记跟变量值了!于是,输入。(两个文件是事先拷贝好放在自建的临时文件夹里的。)

        技术分享

        诶?怎么还在闪?难道是,正在进行运算中?阿拉,真是没办法,毕竟那两个文件加一起也有六七百行,就等等你吧!

        于是,两分钟过去了……

        五分钟过去了……

        十分钟过去了……

        技术分享

        阿拉再迟钝也不会认为一个程序可以执行这么久啦!看来又有什么问题了!自从学通配符开始,阿拉就知道了linux的脾气有多臭。

        阿拉只好按下Ctrl+c。这下可好,丫还给我报错了。

        技术分享

        yhoo!语法错误。行吧,那我改。

        技术分享

        不行?好吧,我再改。

        技术分享

        得,我改就是了。

        技术分享

        大哥我错了。我不该头脑发热,啥也不想就知道干。我,我去查笔记。        

变量赋值:name=‘value‘
(1) 可以是直接字串varname=“root" varname=‘this is a variable‘
(2) 变量引用varname="$USER" varname=${USER} varname=$USER
(3) 命令引用varname=`COMMAND` varname=$(COMMAND)
变量引用:${name} $name
""弱引用,其中的变量引用会被替换为变量值
‘‘强引用,其中的变量引用不会被替换为变量值,而保持原字符串

        对了,还有算术运算的。

实现算术运算:
(1) let var=算术表达式
(2) var=$[算术表达式]
(3) var=$((算术表达式))

(4) var=$(expr arg1 arg2 arg3 ...)   乘法时要转译* ,即\*

(5) declare –i var = 数值
(6) echo ‘算术表达式’ | bc

本文出自 “RightNow” 博客,请务必保留此出处http://amelie.blog.51cto.com/12850951/1953359

戏说shell编程

标签:linux

原文地址:http://amelie.blog.51cto.com/12850951/1953359

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!