首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中运行时,GVM返回错误

在bash脚本中运行时,GVM返回错误
EN

Stack Overflow用户
提问于 2014-02-13 03:29:40
回答 1查看 857关注 0票数 0

我正在运行一个安装脚本,用GVM在新机器上安装Grails。

代码语言:javascript
复制
#!/bin/bash
set -e

source "/Users/mecca831/.gvm/bin/gvm-init.sh"

echo "Install grails"
gvm install grails 2.1.1

在本例中,GVM返回1,这会破坏我的脚本。但是,如果删除了set -e,脚本就能工作。它返回0,将显示正确的提示符。有人在用GVM安装Grails时遇到了同样的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 05:46:52

为了使用set -e运行,必须专门编写一些重要的脚本。

gvm-init.sh还没有被写入以允许这一点,并且当它被启用时中断。

例如,考虑一下本节

代码语言:javascript
复制
GVM_DETECT_HTML="$(echo "$GVM_RESPONSE" | tr '[:upper:]' '[:lower:]' | grep 'html')"
if [[ -n "$GVM_DETECT_HTML" ]]; then
    ...

在任何情况下,这都不是很好的或惯用的bash代码,但它本身工作得足够好。它找到包含"html“的行,并将它们插入变量中。然后检查变量是否为空。

但是,启用set -e时,如果变量为空,脚本就会退出,然后脚本才有机会查看它并说明这一点。

在运行任何受影响的代码之前,除了重写gvm-init.shset +e之外,没有什么可以做的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21744607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档