正統派なら
#!/bin/bash
#!/usr/bin/python3
など決め打ちだろ
バージョン違いで挙動が異なるなら尚更決め打ち
bashやpython3の場所が異なる可能性を挙げていて
envは変わる確率が低いという無茶苦茶謎理論
https://news.mynavi.jp/techplus/article/techp3085/
インストール先に合わせて
#!/usr/local/bin/pytho3
とか書き換えろよ
それもできないようなのがスクリプト走らすとか恐怖だよ
#!/usr/bin/env bash ← 🤔
1login:Penguin
2025/04/07(月) 00:34:43.94ID:s+VUvHBA2login:Penguin
2025/04/07(月) 08:42:32.40ID:Sspbwbz9 変な絵文字入れるの流行ってんのか?
2025/05/23(金) 21:17:59.82ID:0cRRXvyK
POSIX UNIX and Linux script best practice guideが参考になるぞ
その書き換えを不要にするのがenvであり、
/usr/bin/env bashとか/usr/bin/env python3といったshbangで
期待されている動作をするよう
OSは構築されていることが求められている
その書き換えを不要にするのがenvであり、
/usr/bin/env bashとか/usr/bin/env python3といったshbangで
期待されている動作をするよう
OSは構築されていることが求められている
4login:Penguin
2025/05/30(金) 12:06:59.23ID:uRKoLJif env はなぜ
/usr/bin/env で決め打ちできるわけ?
システムに複数のpython3がある場合にどの python3で動くか決定的ではなく
ユーザー設定によるので当てにならない
/usr/bin/env で決め打ちできるわけ?
システムに複数のpython3がある場合にどの python3で動くか決定的ではなく
ユーザー設定によるので当てにならない
5login:Penguin
2025/05/30(金) 12:09:35.55ID:uRKoLJif 例えば
/usr/bin/python3
/usr/local/bin/python3
/home/userA/bin/python3
とある場合
env で呼ばれる python3 は$PATHによって異なる
/usr/bin/python3
/usr/local/bin/python3
/home/userA/bin/python3
とある場合
env で呼ばれる python3 は$PATHによって異なる
2025/05/30(金) 16:51:14.13ID:xhoREEXj
ユーザーがactivateしたvenvと同じ環境で走らせたいスクリプトもあれば固定環境で走らせたいスクリプトもあるだろ
使い分けろ
使い分けろ
2025/05/31(土) 20:24:24.71ID:nUxZuYDd
>>4
/usr/bin/envは決め打ちしているものではなく、
利用者は/usr/bin/envがある環境を用意する責任がある、という指針の結果だよ
Pythonの件も、利用者にはenvの評価結果で適切なpython3が選ばれるような
環境を用意する責任がある
そういう責任共有モデル
/usr/bin/envは決め打ちしているものではなく、
利用者は/usr/bin/envがある環境を用意する責任がある、という指針の結果だよ
Pythonの件も、利用者にはenvの評価結果で適切なpython3が選ばれるような
環境を用意する責任がある
そういう責任共有モデル
2025/06/01(日) 03:57:59.00ID:SR02+F16
#!/usr/bin/python3
を自分の好みにあわせて
#!/home/userA/bin/python3
などと書換える方が安全だと思う
こっちは全部自分の意志で行うから
#!/usr/bin/env python3
は不適切でも動いちゃう
を自分の好みにあわせて
#!/home/userA/bin/python3
などと書換える方が安全だと思う
こっちは全部自分の意志で行うから
#!/usr/bin/env python3
は不適切でも動いちゃう
2025/06/01(日) 11:32:15.42ID:OLS6TxiM
>>8
利用者がPythonを好みで選べる環境を作ったのなら、
#!/usr/bin/env python3 なスクリプトが
好みのPythonで起動できる状態にするのは利用者の責任となるのではないかな
昨今のEPPやクラウドの監視が動いてる環境だと、shebangだけとはいえスクリプトを改変すると、
レポジトリに登録されているものから改変されている等と警告が上がるかと
そういう面倒な検知を防ぎつつ、本当のスクリプトの改変を検知できるようにするためにも、
shebangでは/usr/bin/envを使いましょうね、と
利用者がPythonを好みで選べる環境を作ったのなら、
#!/usr/bin/env python3 なスクリプトが
好みのPythonで起動できる状態にするのは利用者の責任となるのではないかな
昨今のEPPやクラウドの監視が動いてる環境だと、shebangだけとはいえスクリプトを改変すると、
レポジトリに登録されているものから改変されている等と警告が上がるかと
そういう面倒な検知を防ぎつつ、本当のスクリプトの改変を検知できるようにするためにも、
shebangでは/usr/bin/envを使いましょうね、と
10login:Penguin
2025/06/01(日) 11:44:46.08ID:SR02+F16 上で出ていた
POSIX UNIX and Linux script best practice guide
なり
このもとの理論ってどこにあるの?
誰が提唱しているの?
POSIX UNIX and Linux script best practice guide
なり
このもとの理論ってどこにあるの?
誰が提唱しているの?
2025/06/01(日) 14:28:44.39ID:CXRoilnc
複数のpython3 っておまえ面倒くせえことしてるなw
2025/06/01(日) 19:59:15.43ID:hIpIBTye
venvやコンテナ使ってれば複数あるのは当たり前でしょ
2025/06/01(日) 20:12:36.49ID:cqop4uSm
この環境は/bin/shがdashなのでshebangはこう変える、
あのスクリプトはあのバージョンのPythonを使いたいのでこうする、というのって
過去の名残というよりも、それが腐ってできたバッドノウハウだと思うんよね
あのスクリプトはあのバージョンのPythonを使いたいのでこうする、というのって
過去の名残というよりも、それが腐ってできたバッドノウハウだと思うんよね
2025/06/01(日) 20:17:10.47ID:hIpIBTye
それ言ったら#!自体がなー
ファイルの拡張属性でやるのが正解とは思う。FAT系のことは忘れろ
ファイルの拡張属性でやるのが正解とは思う。FAT系のことは忘れろ
15login:Penguin
2025/06/01(日) 20:57:13.26ID:f2koINJC 全部同じ環境にするのは無理です終わり
2025/06/02(月) 03:10:18.32ID:xo4/TAEW
なので、スクリプトはenvを使う、利用者はそれ前提で環境を作る、というのが落としどころなのだろう
17login:Penguin
2025/06/02(月) 20:41:46.95ID:Vp1AjuB0 これLinuxが普及してスクリプトを動かす人が
#! の意味も分からない書換えもできないまま動かしているからだよね
Windowsのマルウェアと同じで危険な兆候なんじゃないの?
最低限の知識も持たず使う人たちの存在
#! の意味も分からない書換えもできないまま動かしているからだよね
Windowsのマルウェアと同じで危険な兆候なんじゃないの?
最低限の知識も持たず使う人たちの存在
2025/06/02(月) 21:20:51.93ID:5/UW0z/h
シバン書き換えたら改ざん検知されたでござる
まあもうそういう時代なのだから、envを利用する、に舵を切ってもよいのでは
Linuxに閉じた話とするにしてもbash、dash、zshが入り乱れているのだしさ
まあもうそういう時代なのだから、envを利用する、に舵を切ってもよいのでは
Linuxに閉じた話とするにしてもbash、dash、zshが入り乱れているのだしさ
19login:Penguin
2025/06/02(月) 22:37:46.51ID:NF5N+/2D もう誰も興味無いんだわOSの仕組みなんか
20login:Penguin
2025/06/14(土) 13:48:10.95ID:HGD7iMV2 やっぱりみんなユーザランドよりカーネルのほうが興味あるんだね
21login:Penguin
2025/06/14(土) 20:03:08.80ID:yrLG8RWJ https://docs.python.org/ja/3.13/tutorial/appendix.html
Pythonチュートリアル 16.1.2. 実行可能な Python スクリプト
#!/usr/bin/env python3
https://docs.python.org/ja/3.13/using/unix.html
Python のセットアップと利用 2.4. その他
いくつかの Unix は env コマンドを持たないので、
インタープリターのパスを /usr/bin/python3 のように
ハードコードしなければならない
Pythonチュートリアル 16.1.2. 実行可能な Python スクリプト
#!/usr/bin/env python3
https://docs.python.org/ja/3.13/using/unix.html
Python のセットアップと利用 2.4. その他
いくつかの Unix は env コマンドを持たないので、
インタープリターのパスを /usr/bin/python3 のように
ハードコードしなければならない
22login:Penguin
2025/06/14(土) 20:07:20.65ID:yrLG8RWJ https://perldoc.perl.org/perlintro
put this as the first line of your script:
#!/usr/bin/env perl
You can also put directly the path to your perl executable, like in
#!/usr/bin/perl
put this as the first line of your script:
#!/usr/bin/env perl
You can also put directly the path to your perl executable, like in
#!/usr/bin/perl
23login:Penguin
2025/06/14(土) 20:23:33.53ID:yrLG8RWJ https://www.gnu.org/software/bash/manual/bash.html
Bash Reference Manual
Bash scripts often begin with
#! /bin/bash
if it’s been installed in another directory:
#!/usr/bin/env bash
Bash Reference Manual
Bash scripts often begin with
#! /bin/bash
if it’s been installed in another directory:
#!/usr/bin/env bash
2025/06/15(日) 17:36:12.63ID:FDKRbYvX
>>2
クソジジイって言われてそう
クソジジイって言われてそう
2025/07/23(水) 06:00:28.31ID:bkgeRWwU
>>24
職場で仕事の邪魔してそう
職場で仕事の邪魔してそう
26login:Penguin
2025/09/20(土) 14:13:11.85ID:rm9y10jT ln -s で固定します
27login:Penguin
2025/10/12(日) 08:03:10.01ID:K2nNFmqm >>7
いいモデル、そして慣習とは思うが
(今普及しているの実装の)envはあまりに色々多機能過ぎて第三者の再実装がとても難しい…
man見てみたら宇宙猫になるよ!!
#! /usr/bin/env interpreter
でPATHから予測可能な順序で正しいinterpreter選んでくれる、それだけで十分なのに
環境変数からみ、複数引数対応の為の難解なエスケープ規則etc etc、肥大化しすぎ
どこか…posix?でもlsb?でもいいから、利害団体で必要最小限の機能を定めて公布してほしいよ…
いいモデル、そして慣習とは思うが
(今普及しているの実装の)envはあまりに色々多機能過ぎて第三者の再実装がとても難しい…
man見てみたら宇宙猫になるよ!!
#! /usr/bin/env interpreter
でPATHから予測可能な順序で正しいinterpreter選んでくれる、それだけで十分なのに
環境変数からみ、複数引数対応の為の難解なエスケープ規則etc etc、肥大化しすぎ
どこか…posix?でもlsb?でもいいから、利害団体で必要最小限の機能を定めて公布してほしいよ…
28login:Penguin
2025/10/12(日) 13:51:34.36ID:QAp1T8of 「お前らもう何もするな」って言いたくなることがITには多すぎる
29login:Penguin
2025/10/18(土) 13:45:58.31ID:PwcJHP1D man envは闇だなあ
まさにお前らもう余計な事すんな
お陰でPOSIX等にも入りようがない仕様だし、envのある保証も規格の統一も望めない
env作者は死んで詫びろ
まさにお前らもう余計な事すんな
お陰でPOSIX等にも入りようがない仕様だし、envのある保証も規格の統一も望めない
env作者は死んで詫びろ
30login:Penguin
2025/10/18(土) 14:47:52.14ID:PwcJHP1D unix哲学に真っ向から敵対するのがenv
#! /usr/bin/env someprog
というシンプル使い方だけなら良いんだけどね
無駄な機能多すぎィ!
#! /usr/bin/env someprog
というシンプル使い方だけなら良いんだけどね
無駄な機能多すぎィ!
31login:Penguin
2025/10/19(日) 05:24:46.48ID:lO1VDQuf 必要な機能ではなくあってはならない機能を定義すべき
2025/11/06(木) 08:29:20.43ID:4zGDeFUT
シバンって日本語っぽくてダサい
2025/11/08(土) 00:13:50.10ID:819D+aD7
機動刑事
レスを投稿する
ニュース
- 両足切断された30代女性が意識回復、軽トラックと車に挟まれた事故 40代男を逮捕 東京・世田谷区三軒茶屋 ★2 [お断り★]
- 【野球】また下剋上 3位・DeNAの日本シリーズ進出に困惑 「邪道」「これでいいのかプロ野球」「ペナントレース勝ち抜いた意味ない」★3 [冬月記者★]
- 「イオンモールおじさん」にSNS賛否…中年男性のファッションは何が正解? 400人アンケートで見えた「over50男性のリアル」 [七波羅探題★]
- 横浜市長選、原沢敦美氏が当選確実 パワハラ辞職の山中竹春氏ら破る :朝日新聞 [少考さん★]
- 【サッカー】日本代表MF 久保建英(ソシエダ) 待望の今季初ゴール! 7試合ぶりに先発 マラガ戦で圧巻のゴラッソ! [阿弥陀ヶ峰★]
- 謙虚さが低い男性ほど「男性は不当に扱われている」と感じて男性の権利擁護活動を支持する傾向があるという研究結果 [少考さん★]
- NFL 2026/27 week6 Part2
- とらせん
- 【DAZN/U-NEXT】ラ・リーガ 26/27 ★6
- 巨専】
- NFL 2026/27 week6 Part1
- 【DAZN】リーグアン 2026-27総合 ★4
- 【画像】顔はオジサン、服だけ若者『おじさんキッズコーデ』ガチでヤバいwwwwwwwwww [308389511]
- くら寿司の🪳混入動画、削除される [931948549]
- 【動画】日本人、スタバで上半身裸の外国人観光客に店員でもないのにわざわざ注意してXに晒しあげてしまう [668024367]
- 【悲報】台湾人さん「日本人が台湾🇹🇼を旅行しない理由って何?俺たちは親日で日本に行きまくってるのに…」確かに謎よな [562983582]
- 【画像】Z世代、ヤクザを開業。警察に挨拶回りをする [841411289]
- 【悲報】ジャスティン・ビーバーさん、妻に托卵され号泣し離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]