#!/usr/bin/env bash ← 🤔 (25レス)
1-

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1: login:Penguin [] 04/07(月)00:34 ID:s+VUvHBA(1)
正統派なら
#!/bin/bash
#!/usr/bin/python3
など決め打ちだろ
バージョン違いで挙動が異なるなら尚更決め打ち

bashやpython3の場所が異なる可能性を挙げていて
envは変わる確率が低いという無茶苦茶謎理論
https://news.mynavi.jp/techplus/article/techp3085/
インストール先に合わせて
#!/usr/local/bin/pytho3
とか書き換えろよ
それもできないようなのがスクリプト走らすとか恐怖だよ
6: login:Penguin [sage] 05/30(金)16:51 ID:xhoREEXj(1)
ユーザーがactivateしたvenvと同じ環境で走らせたいスクリプトもあれば固定環境で走らせたいスクリプトもあるだろ
使い分けろ
7: login:Penguin [sage] 05/31(土)20:24 ID:nUxZuYDd(1)
>>4
/usr/bin/envは決め打ちしているものではなく、
利用者は/usr/bin/envがある環境を用意する責任がある、という指針の結果だよ

Pythonの件も、利用者にはenvの評価結果で適切なpython3が選ばれるような
環境を用意する責任がある

そういう責任共有モデル
8
(1): login:Penguin [sage] 06/01(日)03:57 ID:SR02+F16(1/2)
#!/usr/bin/python3
を自分の好みにあわせて
#!/home/userA/bin/python3
などと書換える方が安全だと思う
こっちは全部自分の意志で行うから

#!/usr/bin/env python3
は不適切でも動いちゃう
9: login:Penguin [sage] 06/01(日)11:32 ID:OLS6TxiM(1)
>>8
利用者がPythonを好みで選べる環境を作ったのなら、
#!/usr/bin/env python3 なスクリプトが
好みのPythonで起動できる状態にするのは利用者の責任となるのではないかな

昨今のEPPやクラウドの監視が動いてる環境だと、shebangだけとはいえスクリプトを改変すると、
レポジトリに登録されているものから改変されている等と警告が上がるかと

そういう面倒な検知を防ぎつつ、本当のスクリプトの改変を検知できるようにするためにも、
shebangでは/usr/bin/envを使いましょうね、と
10: login:Penguin [] 06/01(日)11:44 ID:SR02+F16(2/2)
上で出ていた
POSIX UNIX and Linux script best practice guide
なり
このもとの理論ってどこにあるの?
誰が提唱しているの?
11: login:Penguin [sage] 06/01(日)14:28 ID:CXRoilnc(1)
複数のpython3 っておまえ面倒くせえことしてるなw
12: login:Penguin [sage] 06/01(日)19:59 ID:hIpIBTye(1/2)
venvやコンテナ使ってれば複数あるのは当たり前でしょ
13: login:Penguin [sage] 06/01(日)20:12 ID:cqop4uSm(1)
この環境は/bin/shがdashなのでshebangはこう変える、
あのスクリプトはあのバージョンのPythonを使いたいのでこうする、というのって
過去の名残というよりも、それが腐ってできたバッドノウハウだと思うんよね
14: login:Penguin [sage] 06/01(日)20:17 ID:hIpIBTye(2/2)
それ言ったら#!自体がなー
ファイルの拡張属性でやるのが正解とは思う。FAT系のことは忘れろ
15: login:Penguin [] 06/01(日)20:57 ID:f2koINJC(1)
全部同じ環境にするのは無理です終わり
16: login:Penguin [sage] 06/02(月)03:10 ID:xo4/TAEW(1)
なので、スクリプトはenvを使う、利用者はそれ前提で環境を作る、というのが落としどころなのだろう
17: login:Penguin [] 06/02(月)20:41 ID:Vp1AjuB0(1)
これLinuxが普及してスクリプトを動かす人が
#! の意味も分からない書換えもできないまま動かしているからだよね
Windowsのマルウェアと同じで危険な兆候なんじゃないの?
最低限の知識も持たず使う人たちの存在
18: login:Penguin [sage] 06/02(月)21:20 ID:5/UW0z/h(1)
シバン書き換えたら改ざん検知されたでござる

まあもうそういう時代なのだから、envを利用する、に舵を切ってもよいのでは

Linuxに閉じた話とするにしてもbash、dash、zshが入り乱れているのだしさ
19: login:Penguin [] 06/02(月)22:37 ID:NF5N+/2D(1)
もう誰も興味無いんだわOSの仕組みなんか
20: login:Penguin [] 06/14(土)13:48 ID:HGD7iMV2(1)
やっぱりみんなユーザランドよりカーネルのほうが興味あるんだね
21: login:Penguin [] 06/14(土)20:03 ID:yrLG8RWJ(1/3)
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 のように
ハードコードしなければならない
22: login:Penguin [] 06/14(土)20:07 ID:yrLG8RWJ(2/3)
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
23: login:Penguin [] 06/14(土)20:23 ID:yrLG8RWJ(3/3)
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
24
(1): login:Penguin [sage] 06/15(日)17:36 ID:FDKRbYvX(1)
>>2
クソジジイって言われてそう
25: login:Penguin [sage] 07/23(水)06:00 ID:bkgeRWwU(1)
>>24
職場で仕事の邪魔してそう
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s