У меня Mac OS 10.6, и я пытаюсь кое-что узнать о сценариях оболочки. Я понимаю, как сохранить сценарий оболочки и сделать его исполняемым, но мне интересно, что я могу сделать или где я могу сохранить файл, чтобы сделать его глобальным (то есть доступным независимо от того, в какой папке я нахожусь).
Например, если я сохраню файл .sh в каталоге / Users / username / и сделаю его исполняемым, я могу выполнить этот сценарий только в этом конкретном каталоге. Например, если я перейду в / Users / username / Downloads, я не смогу выполнить скрипт.
Кроме того, будут полезны любые предложения ресурсов для получения дополнительных сведений о сценариях оболочки. благодаря
PATH
Сначала прочтите о переменной среды, а затем обновите вопрос.Ответы:
/usr/local/bin
было бы наиболее подходящим местом. В Mac OS X онPATH
по умолчаниюисточник
Традиционно такие сценарии либо входят
~/bin
(то есть: каталог bin в вашем домашнем каталоге), либо/usr/local/bin/
первое означает, что сценарий будет работать только для вас, второе - для сценариев, которые вы хотите, чтобы кто-либо в системе мог запускать.Если вы вставите его
~/bin
, вам может потребоваться добавить его в переменную среды PATH./usr/local/bin
уже должен быть на пути.источник
Есть два способа сделать это -
** ПРИМЕЧАНИЕ . Если вы хотите запустить сценарий с сокращенной командой, а не вводить полное имя файла, добавьте следующее в свой .bash_profile:
alias myscript='my_script.sh'
Затем вы можете запустить сценарий, просто набрав
myscript
. (вы можете использовать любой псевдоним, который хотите)источник
В операционной системе Mac
источник
.bash_profile
? Это намного проще (и этот исходный файл .bashrc никогда не работал у меня).Это очень просто, если вы знакомы с вашим файлом bashrc! Это будет полностью использовать только ваш файл .bashrc и займет 2 секунды.
(Я использую Arch Linux Manjaro, поэтому использую .bashrc, расположенный в моем домашнем каталоге)
Код, который нужно поместить в ваш .bashrc файл:
# Simple bashrc method to launch anything in terminal from any directory YOURCOMMAND () { cd /path/to/directory/containing/your/script/ && ./YOURSCRIPT }
Как видите, сначала вы используете простую команду 'cd' и указываете ей каталог расположения скриптов, затем используете '&&', чтобы вы могли выполнить следующую команду сразу после, и, наконец, открываете свой скрипт так же, как вы бы обычно! Очень просто и сохраняется прямо в вашем .bash файле! :)
Надеюсь, я кому-то помог!
С уважением,
Анонимный X
источник
При использовании оболочки bash напишите этот сценарий как функцию, а затем поместите его в .bashrc или укажите файл, содержащий эту функцию, с помощью "source file_name"
Теперь выполните сценарий путем вызова функции в оболочке.
источник
Либо сохранение его
/usr/bin
(или любой другой каталог, присутствующий вPATH
), либо редактированиеPATH
для включения каталога, в котором вы его сохранили, в основном заставит его работать в любом каталоге.источник
/usr/bin
можно полностью очистить и заменить во время обновления ОС, в результате чего ваш скрипт таинственным образом исчезнет./usr/local/bin
для этой цели, как упоминал Брайан Окли. См. Также Стандарт иерархии файловой системыиз рабочего каталога 'script.sh' «mv [script.sh] / usr / local / bin» (не проверено, но, похоже, это наименее сложный способ ИМО.)
источник
sudo mv script.sh /usr/local/bin
, поскольку этот каталог не доступен для записи без повышения привилегий.Вы должны поместить его в глобальный каталог исполняемых файлов на вашем компьютере. Я думаю, что обычно это было бы
/usr/bin
в операционных системах на основе Unix (однако чаще всего для этого требуются привилегии суперпользователя на этой машине).Вы также можете поместить его в любой другой каталог, который находится в
$PATH
переменной среды, хотя он будет работать только для тех пользователей, у которых есть этот каталог в этой переменной.Вы можете узнать значение
$PATH
, набравecho $PATH
в командной строке. Каталоги разделены:
.источник