2016-11-10 24 views
0

私は正規表現を使用して文字列と一致させ、出力を変数に格納して再利用する必要がある1つのbashスクリプトを作成しています。
./check.sh:MET-3-getを発行-ID-から分岐ここ変数にgrep出力の値を格納する方法

は私のスクリプトは、私は、この多くの方法を試してみましたが、私はエラーを取得しています、

#!/bin/sh 

NAME="MET-3-get-code-from-string" 
por="$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)')" #this should store 3 in variable por 

echo $por 

です-name:見つからない

個別のgrepコマンドを実行してからyesにすると、正常に動作しています。しかし、私は出力を格納することはできません。

私も試してみました:

por=$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)') 
por=$NAME | grep -P -o -e '(?<=MET-).*?(\d+)' 

および他の多くの同様の参照を。

でも動作しません。誰でも私にこれを助けてもらえますか?私はbashで多くの経験がありません。

ありがとうございました。

por="$(echo "$NAME" | grep -P -o -e '(?<=MET-).*?(\d+)')" 

答えて

1

変更

por="$($NAME | grep -P -o -e '(?<=MET-).*?(\d+)')" 

また、あなたは終了二重引用符(多分ちょうどタイプミス、NAME="MET-3-get-code-from-string"する必要があります)

+0

それが働いていたが欠落しています。 AMDありがとうございます:) – rut2

関連する問題