Linux Shell 脚本攻略--1

时间:2022-02-28 15:39:02

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