【发布时间】:2020-06-12 19:05:20
【问题描述】:
为了提供一些上下文,我正在运行 docker 的 Amazon ec2 linux 环境中工作,并且在 docker-container 中托管 Jenkins。在我的 Jenkins 管道中,我能够编写 shell 脚本,但我是脚本新手,尽管我努力寻找解决方案,但我遇到了困难。
我试图在我的脚本中做的只是验证我的软件是否已安装(cf-cli 和 angular-cli),如果没有,则安装它们。 在使用实际安装命令之前我一直在玩,但这是我的方法,希望这是一些常见的行业惯例,但我不确定:
if ['cf version' not 由于找不到命令而失败]
然后 因为已经安装,所以什么也不做
其他安装cf
以下是我当前的脚本,它在我的第一个 if 语句中一直退出执行,因为找不到 cf 命令。这正是我试图用于 if 语句流的内容,但我不确定如何。我注意到的另一件事是,在这个容器中,我 DO 已经安装了 angular,并且我确实从“ng version”命令中获得了版本输出,但脚本会 always 回显它给我的系统增加了角度,就好像第二个 if 语句是错误的一样。如果有人可以帮助指导我,我很感激你。
sh '''
echo 'Verifying cf-cli installation'
if [ "cf version" -ne 127 ]
then
echo 'cf-cli must be installed. Do nothing'
else
echo 'Adding the Cloud Foundry to your system...'
fi
ANGULAR_VERSION=$(ng version 2>&1)
if [ $ANGULAR_VERSION ]
then
echo 'angular must be installed. do nothing'
else
echo 'Adding angular to your system...'
fi
'''
【问题讨论】: