shebang
scriptを読み込むinterpreterを指定する
一番よく見かけるのは#!/bin/shなので、シェバンとは「実行するshellの指定をする」ものだ、という感じがするが実はもう少し広い
zsh使っている人ならzshで実行される
scriptを読み込むinterpreterを指定するの意味
例えば、#!/usr/bin/pythonと書くと、Python scriptを書いているのと同じになる
code:sh
# ↓これはPythonのコード
print('Hello World')
ただし、これは#!/usr/bin/env pythonのように書く方が良い
例えば、node2nixでbuildしたものは以下のような内容
nix store内のnodejsがshebangとして指定されている
code:hoge(js)
"use strict";
// This file is called from npm bin script. See package.json for details
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
...
よく見るやつも同じノリで、#!/bin/bashと書かれている
Haskellのstackもこれでscriptingできる ref 一番良く見かけるmrsekut.icon
シェバンを指定しておくことでそれを防ぐ
例