2020年12月14日

シェルスクリプトと改行コードの罠

これは Linux Advent Calendar 2020 の14日目の記事である。13日目はSumi-Sumiさんの 「windows in ArchLinuxで無線フルトラする」だった。「フルトラ」って「フルトラッキング」の略なのかな……VR分かんないマンなので、よく分からない。

Linux Advent Calenar、今回、(ノリとイキオイで)初めて参加したのだが、13日目迄の記事のレベルが総じて高い。ヤバい……昨年迄の分を見てレベルを確認しておけば良かった……と思っても既に後の祭り。小ネタで申し訳ないが、ちょっとしたティーブレイクという事で、ここは一つ……

閑話休題。*nix系のOSには、Windowsには無い素敵な機能が在る。そう、shebangである。ファイルの1行目に、#!に続けて、そのファイルの内容を解釈するプログラムのパスを書いて、実行パーミッションを付与しておけば、宛ら実行可能バイナリファイルのように振る舞ってくれる。

shebangの挙動は、 Git for Windows に付属しているBashでも再現されている。 Git Bash 上ではLinuxのファイル階層が再現されているので、Windows上でBashのスクリプトを開発する事も、まぁ可能だ。

さて、先日、 Git Bash 上で動作確認を行ったBashスクリプトファイルをLinux上に持っていくと、エラーが発生するという現象に遭遇した。エラーメッセージは次の通り。

-bash: ./script.sh: /bin/bash^M: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
続きを読む
posted by 天井冴太 at 00:00| Comment(0) | OS | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。