自分でWebにのせていたシェルスクリプトをコピペして実行しようとしたらこんなエラーメッセージが表示されました。
rbenv-install.sh: 行 28: $'\302\240': コマンドが見つかりません
何度見返してもそんな行にコマンド入れた記憶はないし、
おかしいなあと思ってぐぐってみたら \302\240
という実体参照は
UTF-8 のバイトシーケンスに直すと C2 A0
にマッピングされるようで、
これは実際に 通称C2A0問題 と呼ばれているようです。
ホワイトスペースもどきです。
デザインは崩れるし、うまく実行されないし、いいことはないです。
バイナリエディタで該当ファイルを検索してみたらしっかり C2 A0
が埋め込まれていました。
かんべんして欲しいのでsedで半角ホワイトスペースに置換してあげて実行したらうまく動いてくれました。
sed -i -e 's/\xc2\xa0/ /g' rbenv-install.sh
Rubyが好きなのでこういう使い捨てスクリプトはRubyで書いてみたいのですが、
なんかこういうのはみんなPerlで書いているし、
PerlはどのLinuxでも入っているからPerlで書いたほうがいいんですかね。
Windowsでもインストール気軽にできるし。
参考サイト
- linux – use sed to replace nbsp, 160, Hex 00a0, Octal 240, non-breaking space – Super User
- くるぶし録: \302\240問題
- Trimでも消えないスペースって? 文字コードC2A0 | サイトスパイラル(Sitespiral)
- 空白文字が2種類あるから混乱するのだよ(全角空白じゃないよ):humming bird
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート
1件のコメント