dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

AWS CLIの出力を改行せずに使うときはcarriage returnに気をつけよ

何が問題なのか

AWS CLIの出力の先頭にはcarriage return 0x0Dが含まれている。 シェルスクリプトワンライナーにおいて、何かの出力につづけて改行することなくAWS CLIの出力を繋げようとすると、先頭に復帰して上書きしてしまう。

イメージ

echo "before "; aws subcommand foo

とすると

  1. beforeが出力
  2. aws subcommand fooが\rbarという出力を出す
  3. 先頭に復帰してからbarを書く

結果

# 欲しい出力
before bar
# 実際の出力
barore 

対策

aws cliの出力の最後にtr -d '\r'とかつけてcarriage returnを消せ

全文検索用メタ文字列

AWS CLI 上書き される