最全面实用的Linux Shell脚本编程知识点总结(2)
-n 非空串 n 数值测试
两种格式: “number” number_operator “number”
[ “number” number_operator “number” ] 其中:number_operator 可以为:-eq 、-ne、-gt、-lt、-ge 例如: NUMBER=130
[ “990” –le “995” –a “NUMBER” -gt “133” ] (其中-a表示前后结果相“与”)
l expr命令一般用于整数值,但也可以用于字符串。 n 格式: expr srgument operator operator argument 例如: expr 10 + 10
expr 10 ^ 2 (10的平方) expr $value + 10
n 增量计数――expr在循环中最基本的用法 例如: LOOP=0
LOOP=`expr $LOOP + 1`
n 模式匹配:通过指定的冒号选项计算字符串中的字符数 例如: value=account.doc
expr $value : `\\(.*\\).doc` 输出 account
命令执行顺序
&& 成功执行一个命令后再执行下一个 || 一个命令执行失败后再执行另一个命令
( ) 在当前shell中执行一组命令(格式:(命令1;命令2; ……)) { } 同( )
例如: comet mouth_end || ( echo “hello” | mail dave ;exit ) 如果没有( ),则shell将直接执行最后一个命令(exit)
脚本调试
最有用的调试脚本的工具是echo命令,可以随时打印有关变量或操作的信息,以帮助定位错误。也可使用打印最后状态($?) 命令来判断命令是否成功,这时要注意的是要在执行完要测试的命令后立即输出$?,否则$?将会改变。 Set命令也可以用来辅助脚本测试: Set –n 读命令但是不执行 Set –v 显示读取的所有的行 Set –x 显示所有的命令及其参数
(要关闭set选项,只要把-换成+就可以了,这里有点特殊,要注意一下)
一些常用的小trick
打印一些头信息
command << dilimiter …… …… dilimiter
以分界符号dilimiter中的内容作为命令的标准输入
常用在echo命令中,这样就避免了没输出一行就要使用一个echo命令,同时,输出格式的调整也相应变得简单了。
例如: echo << something_message ************************************************
hello, welcome to use my shell script ************************************************ something_message 将在屏幕上输出:
************************************************
hello, welcome to use my shell script ************************************************
一、利用<<的分解符号性质还可以自动选择菜单或实现自动的ftp传输 也就是利用分解符号的性质自动选择菜单。
例如: ./menu_choose >>output_file 2>&1 < 则自动在执行脚本的过程中一步步作出选择:2,3,Y <<这种性质决定了它是理想的访问数据库的有用工具,可以用它来输入面对数据库提示时所作的各种选择。 创建一个长度为0的空文件 执行 > file_name 命令或 touch file_name 命令。 一些常用的shell变量 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数(可大于9个) $$ 脚本运行的当前进程的ID号 $! 后台运行的最后一个进程的ID号 $@ 与$#相同,但使用时加引号,并在引号中返回每个参数 $- 显示shell使用的当前选项 $? 显示最后命令的退出状态,0表示无错误(这个变量也常常用来打印输出,在脚本调试时标记某个shell命令或某个函数是否正确执行,但是要注意,$?记载的是最近的函数或命令的退出状态,因此打印时应该立即打印以获得正确的信息) $0的使用 在变量中有一种位置变量$n,用来存放函数调用或脚本执行时传入的参数,其中$0表示函数名或脚本名,需要注意的是,这时的脚本名传递的是包含全路径的脚本名。从$1-$9表示传入的第一到第九个参数,这样的参数表示不能多于九个,如果多于九个,可以使用下面将要提到的shift指令来读取。 因为$0存放函数名或脚本名,因此我们可以通过echo $0来输出调用信息,但是,由于存放的是全路径名,我们可以利用一个shell命令来得到脚本名,basename $0 将得到$0中名字的部分,而与之相反的,dirname $0将得到$0中路径的部分。 Shift的运用 用head或tail指令指定查阅的行数 例如:查阅文件前20行: head –20 file_name 查阅文件后10行: tail –10 file_name awk使用规则 awk 是一种很棒的语言。awk 适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行需要特殊技巧程序设计。与某些语言不同,awk 的语法较为常见。它借鉴了某些
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




