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"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、