У чому сенс і переваги #!/usr/bin/env?

З початку часів (юніксових, тобто 1.01.1970) на початку скрипта рекомендувалося використовувати shebang/hashbang - рядок, що вказує на інтерпретатор який використовується, наприклад:

#!/bin/bash
echo 'hello world'

#!/usr/bin/python
print 'hello world'

#!/usr/bin/python3
print('hello world')

Нещодавно натрапив на рекомендацію використовувати замість цього таку форму:

#!/usr/bin/env bash
echo 'hello world'

#!/usr/bin/env python
print 'hello world'

#!/usr/bin/env python3
print('hello world')

Будь ласка, поясніть, як це працює і в чому переваги такого підходу? Якщо є обмеження та/або недоліки в порівнянні зі звичайним способом - то і про них хотілося б почути.

Alex · 3 роки тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація