shell脚本学习笔记(四) —— expr、basename、shift
来源:互联网 发布:我做淘宝在哪找货源 编辑:程序博客网 时间:2024/05/18 02:00
1 expr
Linux shell中expr的作用常用的主要是四则运算和字符串的操作。
1.1 expr四则运算
expr可以完成四则运算(加、减、乘、除)表达式的求值操作,需要注意的是运算符左右都要有空格,如果没有空格表示字符串连接。另外,乘法运算运算符前要加反斜杠进行转义——“*”。expr也可以进行求模运算(%)。这些运算都是针对整数而言,如果要进行浮点型的运算,就需要使用bc计算器命令。
result=`expr 2 + 3` result=$(expr $no1 + 5)
#!/bin/bashi=1.2j=2.2expr "$i + $j" | bc
这个在shell脚本学习笔记(一)中也有提及。
1.2 expr字符串操作
字符串的操作常用的就是求字符串的长度,包括字符串中的空格在内。
[root@kk bkeep]# expr length "bkeep zbb" //包含空格在内9
len=`expr length $batid`while [ $len -lt 4 ];do batid="0$batid" len=`expr length $batid`done
至于expr更详细的用法,可以man一下。
2 basename
basename返回一个字符串参数的基本文件名称。用法:
basename [string] [suffix]
basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。
bsnm=`basename $0`
3 shift
shift 是 shell 中的内部命令,用于处理参数位置。每次调用 shift 时,它将所有位置上的参数减一。 $2变成了$1, $3变成了$2, $4变成了$3。
详细使用见博客:
http://blog.csdn.net/zhu_xun/article/details/24796235
下面是用到shift的一个例子:
#! /bin/ksh########################################## 初始化指定批处理的状态 ##########################################db2 connect to $DBLINKif [ $? -ne 0 ]; then echo "无法连接到数据库 $DBLINK" exitfistat="0"bsnm=`basename $0`if [ $# -eq 0 ]; then echo "usage:$bsnm [-s | -f | -r | -o] [all | bat_id] ..." exit 1elif [ $# -gt 1 ]; then case $1 in "-s"|"-S") stat="S" shift;; "-f"|"-F") stat="F" shift;; "-0"|"-o"|"-O") stat="0" shift;; "-r"|"-R") stat="R" shift;; "-d") time=`date +20%y%m%d%H%M%S` sql="update tbl_bat_cut_ctl set curr_stlm_dt='$2',lst_upd_tlr='',lst_upd_time='$time'" rlt=`db2 "$sql"` echo "日切已更新为:$2..." exit 0;; esacfiecho "批量初始化[$stat]..." sql="update tbl_bat_task_ctl set bat_status='$stat',asn_status='0'"if [ $1 = "all" ]; then echo " [all]"else sql="$sql where 1=2" for id in $@; do batid=$id len=`expr length $batid` while [ $len -lt 4 ]; do batid="0$batid" len=`expr length $batid` done sql="$sql or bat_id='$batid'" echo " $batid" donefirlt=`db2 "$sql"`#echo $rlt | awk '{ printf "共 %d 个批量.\n",$1 }'echo "已完成"
0 0
- shell脚本学习笔记(四) —— expr、basename、shift
- linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记
- linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记
- 【Shell】【学习笔记】Linux Shell脚本应用(四)
- 【shell脚本学习】shift命令学习
- Shell脚本学习笔记(四)--流程控制
- Shell(3)-uniq、expr、find、basename、dirname、head、tail
- shell脚本判断apcache是否启动(shell脚本学习笔记四)
- shell脚本学习 四
- shell脚本:shift
- 一个简单的shell脚本程序(运用expr命令)
- jQuery选择器代码详解(四)——Expr.preFilter
- 【shell学习笔记】反引号和expr的用法
- shell 学习笔记(四)
- shell学习笔记(四)
- Shell 脚本基础学习 (四)
- shell 脚本编程学习(四) 实例
- linux命令行与shell脚本编程大全学习笔记之—shell脚本for命令学习
- 第一个Java程式
- JDOM方式解析、创建XML文件(实例)
- android 去掉系统自带的跳转activity的动画
- S29GL128P norflash 读写擦除问题
- Unity3d 屏幕特效实现类似死亡之后的全屏黑白效果
- shell脚本学习笔记(四) —— expr、basename、shift
- Ant批量打apk包
- Jsp动态网站初步项目 --简单的商品浏览页面(商品浏览页面index.jsp)
- tomcat--错误
- 变量、作用域、以及内存
- 奥巴马卸任演讲原文及翻译
- 学习Spring第一课——spring理论基础
- 三分钟学会css3中的flexbox布局
- 盒子与小球系列题解