戏说shell编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了戏说shell编程相关的知识,希望对你有一定的参考价值。
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编程的主要内容,如果未能解决你的问题,请参考以下文章