Это старая ветка, но я наткнулся на нее, и я удивлен, что никто еще не дал полного ответа. Так что вот так ...
Учебник по выполнению сценария командной строки!
Q: Как мне выполнить это в Терминале?
Путаница и конфликты:
- Вы не нуждаетесь в «расширении» (таком как .sh или .py или что-нибудь еще), но это помогает отслеживать вещи. Это не повредит. Однако если имя сценария содержит расширение, вы должны его использовать.
- Вы не должны находиться в каком-либо определенном каталоге вообще по любой причине.
- Вы не должны ввести имя программы, которая запускает файл (BASH или Python или любой другой), если вы этого не хотите. Это не повредит.
- Вы не нуждаетесь
sudo
в этом. Эта команда зарезервирована для запуска команд от имени другого пользователя или пользователя «root» (администратора). Великий пост здесь .
(Человек, который только учится выполнять сценарии, не должен использовать эту команду, если в этом нет реальной необходимости, например, установки новой программы. Хорошее место для размещения ваших сценариев - в папке ~ / bin Это можно сделать, набрав cd ~/bin
или cd $HOME/bin
в строке терминала. У вас будут все права в этой папке.)
Чтобы «выполнить этот скрипт» из терминала в системе типа Unix / Linux, вам нужно сделать три вещи:
Сообщите системе местонахождение скрипта. (выберите один)
- Введите полный путь с именем скрипта (например,
/path/to/script.sh
). Вы можете проверить полный путь, набрав pwd
или echo $PWD
в терминале.
- Выполнить из того же каталога и использовать
./
для пути (например, ./script.sh
). Легко.
- Поместите скрипт в каталог, который находится в системе
PATH
и просто введите имя (например, script.sh
). Вы можете проверить систему PATH
, набрав echo $PATH
или echo -e ${PATH//:/\\n}
, если хотите получить более точный список.
Сообщите системе, что скрипт имеет разрешение на выполнение. (выберите один)
- Установите бит выполнения, набрав
chmod +x /path/to/script.sh
в терминале.
- Вы также можете использовать
chmod 755 /path/to/script.sh
, если предпочитаете цифры. Здесь отличная дискуссия с классным графиком здесь .
Сообщите системе тип сценария. (выберите один)
- Введите название программы перед сценарием. (например,
BASH /path/to/script.sh
или PHP /path/to/script.php
) Если сценарий имеет расширение, например .php или .py, оно является частью имени сценария, и его необходимо включить.
- Используйте shebang , который, как я вижу, у вас есть (
#!/bin/bash
) в вашем примере. Если у вас есть это в качестве первой строки вашего скрипта, система будет использовать эту программу для выполнения скрипта. Нет необходимости набирать программы или использовать расширения.
- Используйте «портативный» shebang . Вы также можете попросить систему выбрать версию программы, которая является первой в
PATH
, используя #!/usr/bin/env
, за которым следует имя программы (например, #!/usr/bin/env bash
или #!/usr/bin/env python3
). Есть плюсы и минусы, которые подробно обсуждаются здесь .