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 uninstall」部分に実際に挿入しました。$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 に答える