1、终端打印
1.1、格式化输出
printf "%-5s %-10s %-4.2f\n" 1 aa 90.333
1 aa 90.33
1.2、在echo中转义换行符
echo -e "1\t2\t3"
1 2 3
1.3、打印彩色输出
每种颜色都有对应的颜色码。比如:重置=0,黑色=30,红色=31,绿色=42,黄色=43,白色=47等等
\e[1;31将颜色设为红色,\e[0m将颜色重新置回
echo -e "\e[1;31m this is red \e[0m"
this is red
2、变量与环境变量
2.1、查看线程环境变量
当一个应用程序执行时,它接收一组环境变量,可以使用env命令在终端中查看所有与此终端进程相关的环境变量
cat /proc/$PID/environ
那么$PID如何取得?可以使用pgrep命令获得
pgrep java
3774
3838
4175
因为我的电脑中有三个tomcat在运行,所以返回3个。
此时可以使用上面的命令查看进程相关环境变量了,但显示没有格式,可使用tr命令来实现:
cat /proc/3774/environ| tr '\0' '\n'
...
LOGNAME=ubox
CLASSPATH=/u01/app/apache-tomcat-6.0.32/bin/bootstrap.jar
SSH_CONNECTION=119.255.59.98 1294 192.168.1.71 22
...
2.2、获得字符串长度
var=123456;echo ${#var}
6
2.3、检查是否超级用户
UID是个重要的环境变量,可以用来检查当前脚本是以超级用户还是以普通用户的身份运行。root用户的UID为0
if [ $UID -ne 0 ];then
echo "not root"
else
echo "root"
fi
3、shell进行数学运算
3.1、基础
可以利用let、(())、[]执行基本的算数操作。
let result=1+2;echo $result
3
echo $((1+2))
3
echo $[ 1+2 ] #中括号前后的空格很重要
3
3.2、高级运算
echo `expr 1 + 2` #加号左右的空格很重要
3
echo $(expr 1 + 2)
3
如果需要复杂操作,需使用bc
echo "2 * 3.4"|bc
6.8
设定小数精度
echo "scale=2;3/8"|bc
.37
进制转换
echo "obase=2;1+2" | bc
11
echo "obase=10;ibase=2;011"|bc #输入2进制,转成10进制
3
平方及平方根
echo "10^10"|bc
10000000000
echo "sqrt(100)"|bc
10