事象
Redisのコマンドredis-cli info replication
の出力をgrepしてroleを取得したいです。
# Replication role:master <- これを取得したい connected_slaves:0 master_failover_state:no-failover master_replid:113aa4a6dcb0eb0b11b9c2516712d2eaa1655148 master_replid2:0000000000000000000000000000000000000000 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
以下のようなスクリプトを書きましたがうまくいきません。
ROLE=$(redis-cli info replication | grep "role:" | cut -d ":" -f2) echo "$ROLE" echo "role = '$ROLE'"
実行結果
master 'ole = 'master
1個目のechoだけ見るとうまくいってそうですが、2個めのechoは表示がバグってしまっています。この後ROLEの中身をifで判断したいのですが軒並みうまくいきません。
変数ROLEに何か変な文字コードが入ってしまってるのでしょうか?
Redisの出力をoutput.txtに書き写して、redis-cli info replication
をcat output.txt
にするとうまく動きました。
環境
- GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
- コンテナイメージ redis:7.0.0-bullseye
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。