HOME/Articles/

Bashで複数行ペーストを受け付け、勝手に実行されないようにする

Article Outline

Twitterに興味深いツイートが流れていたので実践した。
(本当はTweetを埋め込みたかったんだけどうまく埋め込めなかった...)

Bashをアップデートする

Tweet元に参考記事があるのでそれを参考にしても良いです、多分方法は同じ。
アップデートする理由としてはBash-4.4以上じゃないと、今回行うブラケットペーストをサポートしていないからです。
なのでバージョンを確認して、Bash-4.4以上ならアップデートしなくても大丈夫だと思います。
まぁでも、せっかくなのでアップデートしましょう。

ちなみにバージョン確認の方法は色々あるんですが、

bash --version

が字面的にわかりやすくて色々詳しく出るので一番いいかなと思います。

最新版をインストールするんですが、僕はMacユーザーなのでHomebrewを使います。

brew install bash

インストール先をログインシェルの候補に追加しておきます。
この時編集するファイルは/etc/shellsですが、このファイルは読み取り専用になっているので、sudoを付けて編集コマンドを実行します。

sudo vi /etc/shells

いくつか既に書かれていると思いますが、最後の行あたりにインストールしたBashを追加しましょう。

/usr/local/bin/bash

そして起動時にログインするシェルを変更します。

chsh -s /usr/local/bin/bash

ターミナルを再起動するとバージョンが最新版になっていると思います。

bash --version

ブラケットペーストを有効にする

これは簡単で、~/.inputrcファイルに設定を追加します。

vi ~/.inputrc
set enable-bracketed-paste on

ターミナルを再起動すれば複数行のペーストを行なっても、
Enterを入力しない限り実行されないようになっていると思います。