加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell技巧

发布时间:2020-12-15 19:47:16 所属栏目:安全 来源:网络整理
导读:1、source和sh的区别 a、.和source是等价的,都只是在当前的shell中运行,影响的是当前shell的环境变量 b、sh是新开一个shell运行,影响子shell的环境变量 2、获取字符串的最后一个字符 STR=123456abc FINAL=${STR: -1} 3、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"%.2fn","$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"outputa"
#输出两个分号
;;
"2")
echo"outputb"
;;
"3")
echo"outputc"
;;
*)
#其它输入
echo"outputerror,pleaseinput1/2"
;;
esac



8、shell 中的$

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


9、

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读