コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2026年1月23日 >>> 2026年1月10日
link もっと後

2026年1月23日

shebangの役割

目次: Linux

スクリプトの先頭(例えばシェルスクリプトなど)に書く"#!〜"から始まるおまじないのことをshebangと言います。一見すると単なるコメントですが、カーネルに対してスクリプトを解釈するインタプリタを指定する役割を果たします。Linuxの場合は必ず1文字目が#、2文字目が!でなければなりません。それ以外の文字はshebangとして認識されません。

カーネルはexecveシステムコール内でshebangを解釈しますので、shebangが間違っていてカーネルが解釈できないときはexecveシステムコールがエラーを返します。正しいスクリプトok.shと間違ったスクリプトng.shの2つを用意して実験しましょう。

正しいshebangを持つスクリプトok.sh

#!/bin/dash
 
echo aaaa
間違ったshebangを持つスクリプトng.sh

##!/bin/dash
 
echo aaaa

間違っている方(ng.sh)は#が1つ余計に付いていることが分かると思います。2つのスクリプトを実行しstraceで追ってみます。

正しいスクリプト実行時のトレース結果
$ strace ./ok.sh 2>&1 | head 

execve("./ok.sh", ["./ok.sh"], 0x7ffcda167180 /* 47 vars */) = 0
brk(NULL)                               = 0x56295818e000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa96499b000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
間違ったスクリプト実行時のトレース結果
$ strace ./ng.sh 

execve("./ng.sh", ["./ng.sh"], 0x7ffc39d6c8f0 /* 47 vars */) = -1 ENOEXEC (Exec format error)
strace: exec: Exec format error
+++ exited with 1 +++

正しいスクリプトはexecveシステムコールが成功しますが、間違ったスクリプトはexecveシステムコールが失敗してENOEXEC(実行形式エラー)で止まりました。

shebangが間違っていても実行できてしまうことがある

一見するとng.shは実行できなさそうですが、不思議なことに両スクリプトに実行権限を付けて(chmod +xなど)実行してみると、どちらも正しく動いてしまいます。

どちらも実行できる……
$ ./ok.sh
aaaa

$ ./ng.sh
aaaa

実行時のシェルの動作をstraceで追うと、execveは失敗してエラーが返っています。おそらくシェルが気を利かせ「こいつはスクリプトだ」と思って実行しているのでしょう。続きはまたの機会に調べます。

編集者:すずき(2026/01/27 02:47)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年1月21日

日本のテレビメーカーの衰退

ソニーがテレビ事業を分離するニュースソニーはなぜ、テレビ事業を「分離」するのか - 中国TCLをパートナーに選んだ"必然性" - ITmedia)を見ました。ざっと各社の歴史を見てみると、

  • 日立: 2012年、撤退(OEM切替え)
  • シャープ: 2016年、鴻海傘下
  • 東芝: 2018年、売却(ハイセンス)
  • 三菱: 2021年、量販撤退、2024年、系列店撤退
  • 船井: 2024年、倒産
  • パナソニック: 2025年、売却できず残った?
  • ソニー: 2026年、分離(TCL)

シャープやパナソニックはテレビ作っているとはいえ、韓国&中国勢に逆転できる目はなさそうです。日系では比較的グローバル販売で強かったソニーすら陥落ですから、日本メーカー全滅したと言っても過言ではないでしょう。

昔、テレビ作る仕事に携わっていた身としては悲しいものがありますが、これも時代の流れですかね。

予期された終焉

日本のテレビメーカー、正確には日本の電機メーカーのテレビ事業部門が輝いていた時代は、地デジ化(※)の少し後くらいまででした。2003年から地デジ化で強制的に買い替え特需を起こし、将来の買い替え需要を先食いしたのも良くなかったし、特需が終わることを考えずテレビ事業に投資したのが凋落の原因とも言われています(予測できた「地デジ特需」終了 テレビ巨額投資の謎 - 日本経済新聞(2014年7月))。

地デジ化が完了した2012年以降、1兆円overだった買い替え需要が2000億円くらいまで一気に冷え込み、テレビが全く売れなくなりました。メーカー各社は北米やら欧州やらグローバル向け販売を目指すも、韓国の2大メーカーSamsungとLG、追いかけてきた中国メーカーが強すぎて全然ダメでした。やがて電機メーカー各社は赤字まみれのテレビ事業を手放し、今日の全滅コースへ至ります。

振り返れば、特需と需要を勘違いして不要な投資をし、グローバル販売に失敗して爆死しただけです。しかし地デジ化の当時は「テレビが足りなくて地デジ化が間に合わねえ!すまんな!!」なんてことはおそらく許されなかったし、テレビメーカーは投資してとにかく作る以外の選択はなかったのでしょう。たぶんきっと。

(※)地上波アナログ放送の停波、それに伴う地上波放送のデジタル化のこと。当時は「地デジ化」が略称でした。

編集者:すずき(2026/01/22 02:55)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2026年1月23日 >>> 2026年1月10日
link もっと後

管理用メニュー

link 記事を新規作成

<2026>
<<<01>>>
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント20件

  • link 24年12月9日
    すずきさん (01/18 15:45)
    「Thank you for your i...」
  • link 24年12月9日
    Up2Uさん (01/15 12:57)
    「Hi I also find the p...」
  • link 25年12月18日
    すずきさん (12/23 23:51)
    「良く見たらksys_read()でfil...」
  • link 25年12月18日
    すずきさん (12/23 23:15)
    「ですね、まあpread+readだと話が...」
  • link 25年12月18日
    hdkさん (12/21 08:34)
    「昔試しにデバイスドライバーを作ったことが...」
  • link 25年11月28日
    hdkさん (12/04 08:10)
    「あれ、停止直前くらいの時のトルクコンバー...」
  • link 25年11月28日
    すずきさん (12/03 11:24)
    「トルクコンバーターがいてエンブレは掛かり...」
  • link 25年11月28日
    hdkさん (12/02 08:02)
    「"停止直前に急にエンブレがほぼゼロになる...」
  • link 25年10月6日
    すずきさん (10/10 13:14)
    「ですね。ccはもはやコンパイラというより...」
  • link 25年10月6日
    hdkさん (10/10 08:27)
    「ただのHello, worldでも試して...」
  • link 25年9月29日
    すずきさん (10/03 00:29)
    「なんと、メタパッケージ入れてなかったです...」
  • link 25年9月29日
    hdkさん (10/02 06:51)
    「あれ、dkmsは自動ビルドされるのが便利...」
  • link 20年8月24日
    すずきさん (08/30 22:06)
    「ですね、自分も今はPulseAudioを...」
  • link 20年8月24日
    hdkさん (08/29 09:32)
    「ALSA懐かしい... PulseAud...」
  • link 16年2月14日
    すずきさん (08/04 01:31)
    「お役に立ったようでしたら幸いです。」
  • link 16年2月14日
    enc28j60さん (08/03 17:40)
    「ちょうど詰まっていたところです。\n非常...」
  • link 25年7月20日
    すずきさん (07/30 00:10)
    「ギクシャクするのは減速時の2速シフトダウ...」
  • link 25年7月20日
    hdkさん (07/29 07:38)
    「2速発進でギクシャクするんですか? 面白...」
  • link 25年7月20日
    すずきさん (07/28 23:16)
    「なるほど。レガシィB4のATはDレンジで...」
  • link 25年7月20日
    hdkさん (07/28 21:28)
    「MT車でも1速はギクシャクするので完全に...」

最近の記事3件

  • link 23年4月10日
    すずき (01/27 02:48)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linux kernel 2.4 for ARMが...」
  • link 26年1月23日
    すずき (01/27 02:47)
    「[shebangの役割] 目次: Linuxスクリプトの先頭(例えばシェルスクリプトなど)に書く"#!〜"から始まるおまじない...」
  • link 26年1月21日
    すずき (01/22 02:55)
    「[日本のテレビメーカーの衰退] ソニーがテレビ事業を分離するニュース(ソニーはなぜ、テレビ事業を「分離」するのか - 中国TC...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 01/27 02:48