2016-08-01 4 views
0

bashでは/ etc/haproxyからバランスのとれたサービスからすべての名前を得ました。しかし今、私はこれらのすべてのイントロに$ srv変数を保存して、自分のヘルスチェックスクリプトを続行したいと思います。コマンド出力を変数に取り込みます

for filename in /etc/haproxy/*.cfg; do 
    for ((i=0; i<=0; i++)); do 
     srv = $(echo $filename | awk -F'[/.]' '{print $4}') 
     echo $srv 
    done 
done 

echo $ filename | サービス1 サービス2あなたは、シェル変数の代入で=周りのスペースを持つことはできません

+1

シェル割り当ての '= 'の周囲にはスペースを入れないでください。 – Barmar

+0

行3を 'srv =" $(echo "$ filename" | awk -F '[/。]' {印刷$ 4} ')に変更してください。 " – Inian

答えて

2

service3:awkの-F '[。/]' 'のような正しいmicroservices名を示している' {$ 4印刷}。あなたが書いたものはsrv変数に代入されずにsrvコマンドを実行しようとしています。

srv=$(echo $filename | awk -F'[/.]' '{print $4}') 
+0

はい、そうです。 –

+0

このような基本情報なしでシェルスクリプトを学ぶにはどうすればよいですか? – Barmar

+0

私はシェフとルビーだけを使用します。しかし、明らかに、ルビ環境を設定することができず、あなたはbashに対処しなければならないVMがあったようです。:)前回はまったく同じステップでブロックされましたが、ペルコナの健康チェックで周辺を見つけました。再度、感謝します! –