Shell数值操作

1.计算的数值的五种方法:
((i++))
let i++
i=$(expr $i + 1)
i=$(echo $i+1|bc)
i=$(echo $i 1|awk ‘{printf $1+$2}‘)
 
2.time命令用来统计命令的执行时间,这部分时间包括总的运行时间,用户空间
执行时间,内核空间执行时间,它通过ptrace系统调用实现。
 
3.取模使用符号%,而求幂只有bc使用的符号为^,其他命令使用的符号均为**。
 
4.bc程序是Linux下的计算器,可以用来计算进制转换。例如:
echo "obase:10;ibase8;11" | bc
另一种处理进制转换的方法是:
echo $((8#20))
表示八进制的20,表示的十进制的值是多少。
 
5.浮点计算有两种方式:
* 使用bc计算:
echo "scale=3;1/13" | bc
如果不加scale的话,需要使用下面的格式:
echo "1/13" | bc -l
* 使用awk计算:
echo "1 3" | awk ‘{printf("%0.3f",$1+$2)}‘
 
6.$#表示传给脚本的参数个数,不包括当前可执行文件的在内,例如:
./test.sh 1 # $#的值为1。
$?表示上一条命令的返回值。
 
7.环境变量RANDOM产生0到32767之间的随机数,awk的rand函数产生0到1之间的随机数。
在使用awk的rand函数的时候,需要首先用srand函数埋下种子,例如:
echo "" | awk ‘{srand();printf("%f",rand());}‘
 
8.seq可以产生一系列数,这些数可以按照指定的间隔递增。例如:
seq 5 # 产生1到5五个数字
seq 1 2 6 # 产生数列 1 3 5
seq -s : 1 5 # 产生数列 1:2:3:4:5
seq -w 1 100 # 产生数列 001 002 ... 100
seq -f "0x%g" 1 3 # 产生数列 0x1 0x2 0x3
 
9.sed的使用方法
* cat regular_express.txt | sed ‘s/[^a-zA-Z]/\n/g‘ | \
sed ‘/^$/d‘ | sort | uniq -c | sort -k 1 -n -r | head
上面的这条命令用于统计文本中出现次数最多的前十个单词,
sed ‘s/[^a-zA-Z]/\n/g‘ 用来分割单词,sed ‘/^$/d‘用来去除空行,
sort 将分割好的单词排序,使得相同的单词排列在一起,这样就可以
使用 uniq -c 来进行统计每个单词出现的次数了,最后将统计好的单
词按照出现的次数排序,head 只提取出现在前十个的单词。
* cat index.html | sed -e ‘s/[^A-Za-z]/\n/g‘ | sed ‘/^$/d‘ | \
grep ‘^the$‘ | uniq -c | sed ‘s/[^0-9]//g‘
查找 the 出现的次数
 
10.shift 每次都将命令行参数向左移动一个,因此当前要处理的参数总为$1

参考资料

===============

Shell编程范例 -- by falcon

时间: 2024-10-13 22:52:32

Shell数值操作的相关文章

第十一章、认识与学习 BASH Bash Shell 的操作环境

Bash Shell 的操作环境: 配置值分为系统整体配置值与各人喜好配置值, 仅是一些文件放置的地点不同! 路径与命令搜寻顺序 一个命令 (例如 ls) 被下达时, 到底是哪一个 ls 被拿来运行? 以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』: 由 alias 找到该命令来运行: 由 bash 内建的 (builtin) 命令来运行: 透过 $PATH 这个变量的顺序搜寻到的第一个命令来运行. 可以发现ls有颜色但是/bin/ls则没有颜色. 因为 /bin/ls

shell数值运算

shell数值运算: "+":相加 "-":相减 "*":相乘 "/":相除 示例: $((2+3)) $(($a-$b)) $(($a*$b)) $(($a/$b)) 相除时结果取整(不带小数点),小于0按0算,如果想算百分比,$(($a*100/$b))% 浮点数计算: echo $(echo "2.1+3"|bc)

shell脚本操作mysql数据库

使用 mysql -e 参数可以执行各种 sql 的各种操作语句.不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. 格式:mysql  -hhostname -Pport -uusername -ppassword  -e “”  #!/bin/bash HOSTNAME="192.168.111.84"                                           #数据库信息PORT="3306"USER

linux shell 字符串操作(长度,查找,替换,匹配)详解

linux shell 字符串操作(长度,查找,替换,匹配)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${va

MongoDB Shell 常用操作

数组查询 数组查询 MongoDB 中有子文档的概念,一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同,在查询时,语法有一些注意点. 例子代码,假如我们的一个集合(tests)中存在标签键,有如下模式: tags: [ObjectId] 查询含有某个标签 ID 的文档 db.tests.find({tags: tagId}); 我现在有一组标签 tagIds,即是数组,需要查询含有该数组中任一元素的文档,此时需要用到 $in 操作符 db.tests.find({tags: {$in

linux下各种形式的shell加法操作总结(转)

linux 下shell加法操作总结: #!/bin/bash n=1;echo -n "$n " let "n = $n + 1" echo -n "$n " : $((n = $n + 1)) echo -n "$n " (( n = n +1 )) echo -n "$n " : $[ n = $n +1 ] echo -n "$n " n=$[ $n + 1 ] echo -n

shell脚本操作数据库

#!/bin/bash HOST_NAME="localhost" PORT=3306 USERNAME="root" PASSWORD="root" DBNAME="test" TABLENAME="tb_test" today=`date +%Y-%m-%d` #删除数据 delete_sql="delete from ${TABLENAME} where todaytime!= '${tod

shell 字符串操作小结

shell 字符串操作小结 #!/bin/bash ############################################   演示bash中操作字符串的操作##   后面是输出结果########################################### str="abc123abcABC"#    |-|#    |-------| #计算字符串的长度 echo ${#str}    #12 #位置参数有关操作echo ${#*}      #位置参数

linux 的shell指令操作

1.在命令终端来获取root用户权限 在终端中输入: sudo passwd root Enter new UNIX password: (在这输入你的密码) Retype new UNIX password: (确定你输入的密码) passwd: password updated successfully 以后,如果在想获得root权限,只需进行如下的操作: su root Password: (在此输入你上面设置的密码) 如果要再次禁用 root 帐号, 那么可以执行 sudo passwd