shell技巧

1、source和sh的区别

a、.和source是等价的,都只是在当前的shell中运行,影响的是当前shell的环境变量

b、sh是新开一个shell运行,影响子shell的环境变量

2、获取字符串的最后一个字符

STR=123456abc

FINAL=${STR: -1}

3、shell计算中使用除法,默认上都是整除。

比如:
num1=2
num2=3
num3=`expr $num1 / $num2` # 变量之间有空格

这个时候num3=0 ,是因为是因为expr不支持浮点除法

解决的方法:
num3=`echo "sclae=2; $num1/$num2" | bc`  #必须要安装bc工具,sclae控制小数点后保留几位

还有一种方法
awk 'BEGIN{printf "%.2f\n","$num1"/"'$num2'"}'  #1.awk使用shell变量,必须要用"''"包围,2.$num1和$num2如果为字符串,可以自动进行类型转换
如果用百分比表示
awk 'BEGIN{printf "%.2f%\n",("$num1"/"'$num2'")*100}' #

4、SQL或者shell脚本中尽量不要用tab间隔,特别是2个tab,否则在shell中批量粘贴脚本时会出现问题,可能会出现命令提示的奇怪问题

5、把某个用户改为 group(s)

usermod -G groups loginname #重新赋一个新组

usermod -a -G groups loginname #添加一个新的组

6、ue 在行模式下,可以通过左对齐和右对齐的方式在行首部和行末批量插入字符

7、shell脚本中的case

case "$digit" in
        "1")
                echo "output a"
                #输出两个分号
                ;;
        "2")
                echo "output b"
                ;;
        "3")
                echo "output c"
                ;;
        *)
                #其它输入
                echo "output error,please input 1/2"
                ;;
esac

8、shell 中的$

$0 这个脚本的执行名字
$n 这个脚本的第n个参数值,n=1..9
$* 这个脚本的所有参数,此选项参数可超过9个。
$# 这个脚本的参数个数搜索
$$ 这个脚本的PID(脚本运行的当前进程ID号)
$! 执行上一个指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
[email protected] 跟$*类似,但是可以当作数组用

9、

原文地址:http://blog.51cto.com/395469372/2084247

时间: 2024-08-05 11:25:45

shell技巧的相关文章

48个shell技巧

0. shell 调试 复制代码 代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x 1. 用 && || 简化if else 复制代码 代码如下: gzip -t a.tar.gz if [[ 0 == $? ]]; then echo "good zip" else echo "bad zip" fi 可以简化为: 复制代码 代码如下: gzip -t a.tar.gz &&

shell技巧(不断整理)

其中的换行符被替换成了空格,若输出时保留换行,应该使用如下命令: echo "${foo}" 2.为不同的主机,指定不同的ssh密钥 Host gitolite-as-alice   HostName git.company.com   User git   IdentityFile /home/whoever/.ssh/id_rsa.alice   IdentitiesOnly yes Host gitolite-as-bob   HostName git.company.com  

拾遗:shell 技巧之 yes 小工具

当需要在脚本中自动回答 'yes' 或 'no' 等选项时,就可以调用 yes 小工具,语法如下: 如(对于管道后面的命令执行过程中提出的每个询问,都发送定制的内容 no 过去): yes no | cp -i testfile /tmp 就等同于: cp -n testfile /tmp 对于没有像 cp 一样提供内置选项的工具,就可以使用 yes 工具自动回答任何需要的内容.

bash shell 需知

shell技巧(一) 等于 :equal to不等于:unequal to大于 :greater小于 :less than 1.test测试命令test命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试,其测试符和相应的功能分别如下:(1)数值测试:-eq:等于则为真-ne:不等于则为真-gt:大于则为真-ge:大于等于则为真-lt:小于则为真-le:小于等于则为真(2)字符串测试:=:等于则为真!=:不相等则为真-z字符串:字符串长度伪则为真-n字符串:字符串长度不伪则为真

【RAC】使用频率较高的CRS维护命令总结

与CRS有关的命令均存放在$ORA_CRS_HOME/bin目录下,使用时请多加留意.本文将在日常CRS维护中较常用的命令予以演示,供参考. 1.启动CRS如果CRS没有启动在使用crs_stat命令查看集群状态的时候将会收到如下的报错信息.[email protected] /home/oracle$ /oracle/app/crs/bin/crs_stat -tCRS-0184: Cannot communicate with the CRS daemon. 在RAC环境下启动所有节点上的C

hbase官方文档(转)

Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Software Foundation.保留所有权利. Apache Hadoop, Hadoop, MapReduce, HDFS, Zookeeper, HBase 及 HBase项目 logo 是Apache Software Foundation的商标. Revision History Revision 0.95-SNAPSHOT 2012-12-03T13:38 中文版

双11活动预告(3)黑麒麟培训课程

上量篇双11活动资源预告(<这些安全类书籍,值得一读>,<双11活动免费发放资源预告(2)>)中,我预告了本订阅号 双11会免费送出的一些纸质书籍,和边界安全授权发布的他们的培训课程. 本次预告的内容是由 [h.e.z] Security Team ( 黑麒麟团队 ) 制作的收费培训课程, 经过该团队的授权,允许在玄魂工作室的公众号免费发放. 这些资料可能已经有人泄露到网络上了, 玄魂工作室在此发布,第一是认为 这些是好课程,值得推荐:第二是 尊重版权,我们可以在网上不经原创团队就

HBase 官方文档0.90.4

HBase 官方文档0.90.4 Copyright ? 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision 0.90.4 配置,数据模型使用入门 Abstract 这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库. 我(译者)熟悉Hbase的源代码,从事Hbase

Linux命令目录重点

linux 命令格式 命令  [选项]  [参数] ls -l gpasswd -d  wangpan root mount /dev/sdd /media 命令:具体执行的命令选项:影响命令的一些行为通常以- 或者--实现参数:命令作用的对象 type:检测命令是内部命令还是外部命令 tty 当前终端是 echo 111>/dev/pts/2 给某个终端发消息wall "" 给终端群发消息which 查找一个命令的位置which ls su - wangpan切换到wangpa