Почему вторая часть шебанга имеет приоритет?

Если это единственный файл в каталоге (или даже единственный .blendфайл ), все, что вам нужно сделать, это запустить свою команду с подстановочным знаком (он же glob, он же расширение имени пути):

blender --background *.blend --render-output //filename --render-frame 1
0
13.06.2019, 16:44
1 ответ

Утилита envвыполнит свой аргумент как команду.

Если аргумент , а не задан с путем, как в env python, команда будет искаться в $PATH. Обычно это то, что вам нужно при использовании envв строке#!-скрипта.

Если аргумент задан с путем, команда будет выполняться по этому пути.

В строке#!-вы запускаете конкретный интерпретатор Python. $PATHникогда не будет искаться. С тем же успехом вы могли бы

#!/mydir/mybins/python

, так как бит envфактически ничего не делает.

Чтобы $PATHподействовало, используйте

#!/usr/bin/env python

Затем будет использоваться первый исполняемый файл python, найденный в $PATH.

В качестве альтернативы можно полностью обойти строку #!-, выполнив скрипт с явным интерпретатором в командной строке.:

$ python run.py

или,

$ /usr/bin/python run.py
5
28.01.2020, 02:15

Теги

Похожие вопросы