0

我有一个相当简单的 bash 脚本,我需要让它变得更复杂一些,但我不确定如何去做。到目前为止,脚本是这样的:

    #!bin/bash

    if rails -v | grep -q "3.2"
     then
    echo "Rails 3.2 installed. Uninstalling and adding Rails 3.1.4."
    gem uninstall rails -v=$version
    gem install rails -v=3.1.4
     else
    echo "Rails 3.2 not installed. Exiting."
    exit 1
 fi

如您所见,它并不完整且非常基本。该脚本的总体目标是查看所述服务器是否安装了 rails 3.2.x,如果是,则卸载它并安装 rails 3.1.4。除了将所需版本实际插入“gem卸载”部分之外,我已经涵盖了所有内容。$version 部分应替换为服务器上 rails -v 输出的版本号。

对此的任何帮助表示赞赏。

谢谢。

4

3 回答 3

1

就像是

gem uninstall rails -v=$(rails -v | grep -o "3.2.*")

定制您的正则表达式以仅匹配版本号,grep 将仅输出该版本号。

于 2012-05-31T20:06:43.050 回答
0

尝试用引号括起来,如下所示:gem uninstall rails -v="$( rails -v | sed 's/.* //' )".

于 2012-05-31T20:16:17.553 回答
0
 gem uninstall rails -v=$( rails -v )
于 2012-05-31T19:17:11.030 回答