Как запустить сценарий оболочки на консоли 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

для оболочки Bourne:

sh myscript.sh

для bash:

bash myscript.sh

если вы хотите, чтобы скрипт запускался в текущей оболочке (например, вы хотите, чтобы он мог влиять на ваш каталог или среду), вы должны сказать:

. /path/to/script.sh

или

source /path/to/script.sh

отметим, что /path/to/script.sh может быть относительным, например . bin/script.sh работает script.sh на bin каталог в текущем каталоге.


во-первых, дайте разрешение на выполнение: -
chmod +x script_name

  1. если скрипт не является исполняемым:-
    Для запуска файла сценария Ш.:-
    sh script_name
    Для запуска файла сценария bash: -
    bash script_name
  2. если скрипт исполняемым:-
    ./script_name

Примечание: - вы можете проверить, является ли файл исполняемым или нет, используя "ls-a"


расширение файла .команда назначается терминалу.приложение. Дважды щелкнув по любому .командный файл выполнит его.