LoginSignup
1

More than 5 years have passed since last update.

Amazon Linux 2 のbashでリダイレクト先が補完されなくなった

Posted at

困ったこと

# test.sh を実行し、標準出力/エラー出力を log/test.log に書き出す
$ sh test.sh >& log/test.log

このとき、log/を打とうとすると、補完されなかった。これまでは出来たのに。。と思って調べると以下の通り。
- Amazon Linux 2 では補完されない
- Amazon Linux (1) では補完される
- RHEL7 では補完される

bash_completion が原因?

  • rpm -qi bash_completion で調べると、Amazon Linux 2にだけ入っている。
  • /usr/share/bash-completion/bash_completion をrenameして再ログインすると、補完された。
  • (が、当然bash-completionをもって機能する補完も使えなくなる)
  • これまでの感じに戻したければこれでOK

より前向きな解決

>&ではなく&>を使おう

$ sh test.sh &> log/test.log

http://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html
「標準出力と標準エラー出力のリダイレクト」の項
意味は同じだが、&>の方が推奨とされている。
これであればbash-completionが効いたままでもOK

ぼやき

(この辺て困ることでも無いと、使い始めた時点の知識からなかなかアップデートされないのでおじさんたちは注意しよう)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1