Как запустить сценарий оболочки на консоли Unix или терминале Mac?
Я знаю это, забудьте и переучите его снова. Пора записать.
6 ответов
для запуска неисполняемого sh
сценарий использования:
sh myscript
для запуска неисполняемого bash
сценарий использования:
bash myscript
чтобы запустить исполняемый файл (который является любым файлом с исполняемым разрешением); вы просто указываете его по пути:
/foo/bar
/bin/bar
./bar
чтобы сделать скрипт исполняемым, дайте ему необходимое разрешение:
chmod +x bar
./bar
когда файл является исполняемым,ядро несет ответственность за выяснение того, как execte его. Для не двоичные файлы, это делается путем просмотра первой строки файла. Он должен содержать hashbang
:
#! /usr/bin/env bash
hashbang сообщает ядру, какую программу запустить (в этом случае команда /usr/bin/env
выполняется с аргументом bash
). Затем скрипт передается программе (как второй аргумент) вместе со всеми аргументами, которые вы дали скрипту в качестве последующих аргументов.
что означает каждый исполняемый скрипт должен иметь hashbang. Если это не так, вы не говорите ядру, что это is, и поэтому ядро не знает, какую программу использовать для его интерпритации. Это может быть bash
, perl
, python
, sh
, или что-то еще. (На самом деле ядро часто будет использовать оболочку пользователя по умолчанию для интерпритации файла, что очень опасно, потому что это может быть не правильный интерпретатор вообще или он может быть в состоянии проанализировать некоторые из них, но с тонкими поведенческими различиями, такими как в случае между sh
и bash
).
Примечание /usr/bin/env
чаще всего вы увидите хэш-челку, например:
#!/bin/bash
в результате ядро будет запускать программу /bin/bash
для интерпретации сценария. К сожалению, bash
не всегда поставляется по умолчанию, и он не всегда доступен в /bin
. Хотя на машинах Linux это обычно так, есть ряд других машин POSIX, где bash
поставляется в различных местах, таких как /usr/xpg/bin/bash
или /usr/local/bin/bash
.
чтобы написать портативный скрипт bash, мы не можем полагаться на жесткое кодирование местоположения
для запуска shell-скрипта 'file.sh':
sh file.sh
bash file.sh
другой вариант - установить исполняемое разрешение с помощью команды chmod:
chmod +x file.sh
теперь беги .SH файл следующим образом:
./file.sh
если вы хотите, чтобы скрипт запускался в текущей оболочке (например, вы хотите, чтобы он мог влиять на ваш каталог или среду), вы должны сказать:
. /path/to/script.sh
или
source /path/to/script.sh
отметим, что /path/to/script.sh
может быть относительным, например . bin/script.sh
работает script.sh
на bin
каталог в текущем каталоге.
во-первых, дайте разрешение на выполнение: -chmod +x script_name
- если скрипт не является исполняемым:-
Для запуска файла сценария Ш.:-sh script_name
Для запуска файла сценария bash: -bash script_name
- если скрипт исполняемым:-
./script_name
Примечание: - вы можете проверить, является ли файл исполняемым или нет, используя "ls-a"
расширение файла .команда назначается терминалу.приложение. Дважды щелкнув по любому .командный файл выполнит его.