1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| # 脚本的第一行申明是bash脚本
#!/bin/bash
# 获取进程id
pid=$(ps -ef|grep -v grep|grep java|awk '{print $2}')
# echo,输出文本到控制台,-n表示输出末尾不换行
echo "flag is true"
echo -n "flag is true"
# 多行条件判断,-z表示值为空,-n表示值不为空
# [[]]是[]的扩展语法,支持一些更高级的功能,但需要在bash环境中(`#!/bin/bash`)使用
if [[ -n "$sys" ]]; then
sysType="x86";
sys=`uname -a |grep aarch64`
elif [[ -n "$sys" ]]; then
sysType="aarch64";
sys=`uname -a |grep AIX`
elif [[ -n "$sys" ]]; then
sysType="aix";
fi
# 单行条件判断,&&逻辑与,后面可以接另一个命令
[[ $flag == true ]] && echo -n "flag is true"
# 循环
time=5
for ((i=1;i<=$time;i++)); do
[[ $isEcho == true ]] && echo -n "$i秒"
sleep 1
done
# 读取用户输入
while true
do
read -p "请输入y/n,[y继续将忽略/n退出]:" inpt
case $inpt in
y)
exit 0
;;
n)
exit 1
;;
*)
echo -n "输入错误"
;;
esac
done
# 获取调用当前脚本时的输入参数,按顺序$1、$2、$3……
# $0:脚本本身的名字
# $@:传给脚本的所有参数的列表
# $$:脚本运行的当前进程ID号
# $?:显示最后命令的退出状态,0表示没有错误,其他表示有错误
deployEnv=$1;
systemId=$2;
terminalId=$3;
sh test.sh
[[ $? != 0 ]] && exit 1
# 字符串大小写转换
deployEnv="test";
# 首字母变为大写
deployEnv=${deployEnv^}
# 全部变为大写
deployEnv=${deployEnv^^}
# 首字母变为小写
deployEnv=${deployEnv,}
# 全部变为小写
deployEnv=${deployEnv,,}
# tr命令转换大小写
# 小写转大写
echo test|tr '[a-z]' '[A-Z]'
# 大写转小写
echo test|tr '[A-Z]' '[a-z]'
# awk配合toupper()或tolower()进行大小写转换
echo test|awk '{print toupper($0)}'
echo TEST|awk '{print tolower($0)}'
# 函数定义
APP_DIR=/test
APP=test.jar
checkpid() {
javaps=`jps -l | grep $APP_DIR/$APP`
if [ -n "$javaps" ]; then
psid=`echo $javaps | awk '{print $1}'`
else
psid=0
fi
}
# 函数调用
checkpid
|