0

コードベースのバージョンを記述した bash スクリプトを作成したとします (settings.php の下など)。ここで、他の bash スクリプトで言及されているコードベース バージョンを取得する bash スクリプトが必要です。この場合、「Grep」コマンドを使用するにはどうすればよいですか。試してみましたが、成功しませんでした。助けてください。

4

1 に答える 1

0

grepラインマッチングツールです。一致する部分文字列が見つかった行全体を出力します。ただし、bashスクリプトでは出力を読み取ることができますが、を使用readすると、出力全体の最後の行のみが得られますgrep。たとえば、からの出力grep "version"が次の場合:

version:1.1.1
module_version:0.1.2

次に、read最後の行のみをキャッチmodule_version:0.1.2しますが、最初の行はキャッチしません。

ファイルにケースがあると仮定すると、行がありますversion:1.1.1。あなたができるbashスクリプトで

cat your_file | grep 'version'
read LINE

それはあなたに variable を与えますLINE="version:1.1.1"。そして、結果の文字列を解析する必要があります。しかし、文字列の形式がわからないので、それを解析する正確なコードを提供することはできません。

ここで詳細を取得した後、適切な解決策があります:

db_version=$(cat $portal_codebase_version/sites/default/settings.php | grep "$GLOBALS['sdm_version']" | sed -n -e "s/^[^=]*= '[^ ]* \(.*\)';$/\1/p")

それはあなたに与えます

$ echo $db_version 
3.8.0.4
$
于 2012-11-29T05:26:57.433 に答える