Как правильно написать she‑bang и запустить скрипт
Когда в начале файла стоит строка вида #!, она говорит оболочке, какой интерпретатор использовать.
Если в ней попали символы вроде ?/???…, то система не найдёт нужный исполняемый файл и выдаст ошибку
bad interpreter: No such file or directory.
Ниже коротко рассказываю, как это исправить, сделать файл исполняемым и посмотреть вывод, если он большой.
1.Что такое she‑bang и какие варианты бывают
| Язык | Типичная строка | Почему удобно |
|---|---|---|
| Bash | #!/usr/bin/env bash |
Берёт первый найденный bash из $PATH.Работает даже без /usr/bin/bash. |
| Python 3 | #!/usr/bin/env python3 |
Аналогично, но для Python 3. |
| Python 2 | #!/usr/bin/env python |
Для старого Python 2. |
| Perl | #!/usr/bin/env perl |
|
| Ruby | #!/usr/bin/env ruby |
На слотика казино официальный сайт вы найдете самые горячие слоты и бонусы: https://dukat.kz/kontakty.На многих системах
/usr/bin/python3или/usr/bin/bashсуществуют напрямую, можно писать эти пути.
Пример простого скрипта «Hello, world!»
#!/usr/bin/env python3
print("Hello, world!")
Сохраняем как hello.py.
2.Делим файл исполняемым
chmod +x hello.py
Теперь можно запускать так:
./hello.py
(Можно и через python3 hello.py, но первый вариант удобнее.)
3.Как прокручивать вывод
Если скрипт печатает много строк, удобно видеть их по частям.
Есть несколько способов:
| Способ | Как использовать |
|---|---|
less |
./big_script.sh | less |
more |
./big_script.sh | more |
watch |
watch -n 1 ./monitor.sh |
curses (Python) |
Встроенный модуль для управления терминалом |
Короткий пример с less:
# Создадим скрипт, который выведет 100 строк
for i in 1..100; do echo "Line $i"; done > big_script.sh
chmod +x big_script.sh
# Посмотрим с прокруткой
./big_script.sh | less
Нажмите q, чтобы выйти из less.
4.Частые ошибки и как их исправить
| Симптом | Причина | Решение |
|---|---|---|
-bash: ./script: /usr/bin/env: bad interpreter: No such file or directory |
Неверный путь или отсутствует интерпретатор | Проверьте путь (which env, which python3). |
Скрипт не запускается после ./script |
Файл не имеет права x |
chmod +x script |
| Скрипт запускается, но выдает «unknown command» | Ошибка в she‑bang или синтаксисе | Перепроверьте первую строку и код. |
| На Windows she‑bang kapilconsultancy.com игнорируется | Windows не использует she‑bang | Запускайте через python script.py или используйте WSL. |
5.Быстрая проверка
# Показываем первую строку
head -n 1 ваш_скрипт
# Права доступа
ls -l ваш_скрипт
Убедитесь, что первая строка начинается с #! и у файла есть бит x.
Итоги
- Пишите she‑bang как первую строку без пробелов:
#!/usr/bin/env python3. - Делите файл исполняемым:
chmod +x script. - Запускайте:
./script. - Просматривайте вывод через
less,moreилиwatch.
После замены ?/???… на реальный путь интерпретатора скрипт начнёт работать, а вывод можно будет прокручивать.Удачной работы!