我试图编写一个shell脚本来杀死某个进程(如果jenkins中已经存在该进程)并运行jar。
我不确定哪里出了问题。我通常要检查processID是否不为null,然后终止该进程,否则仅打印processID不存在。
我浏览了以下一些链接,其中他们建议使用“ -z”检查null。因为我想检查不为null,所以我用了[! -z $ my_var],但这似乎不起作用。
https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/
在jenkins中,执行shell代码:
BUILD_ID=do_not_kill_me
my_var=$(pgrep -f customer);
if [[! -z $my_var]]
then
kill -9 "$my_var";
echo "PID exists and killing it";
else
echo "PID is null/PID doesn't exist";
fi
cp -rf customer*.jar /data/dev/customer/customer.jar
java -jar /data/dev/customer/customer.jar &
exit
我希望执行“ If”部分中的数据,但总是执行其他操作。
当我单击“立即构建”时,jenkins的输出示例,
+ BUILD_ID=do_not_kill_me
+ pgrep -f customer
+ my_var=15531
+ [[! -z 15531]]
/tmp/jenkins390846207133389320.sh: 4: /tmp/jenkins390846207133389320.sh: [[!: not found
+ echo PID is null/PID doesn't exist
PID is null/PID doesn't exist
+ cp -rf customer-management-0.0.1-SNAPSHOT.jar /data/dev/customer/customer.jar
+ exit
尽管我的PID存在,但它返回打印消息,说明不存在。 让我知道哪里出了问题