Как сделать скрипт оболочки глобальным? - PullRequest
60 голосов
/ 24 августа 2010

Я нахожусь на Mac OS 10.6, и я пытаюсь узнать кое-что о сценариях оболочки.Я понимаю, как сохранить сценарий оболочки и сделать его исполняемым, но мне интересно, что я могу сделать или где я могу сохранить файл, чтобы сделать его глобальным (то есть доступным независимо от того, в какой папке я нахожусь).

Например, если я сохраню файл .sh в каталоге / Users / username / и сделаю его исполняемым, я смогу выполнить этот сценарий только в этом конкретном каталоге.Например, если я перейду к / Users / username / Downloads, я не смогу выполнить сценарий.

Кроме того, было бы полезно получить какие-либо рекомендации относительно получения дополнительных сведений о сценариях оболочки.Спасибо

Ответы [ 9 ]

105 голосов
/ 24 августа 2010

/usr/local/bin будет наиболее подходящим местом. Mac OS X имеет его в PATH по умолчанию

35 голосов
/ 24 августа 2010

Традиционно, такие сценарии либо идут в ~/bin (то есть в каталог bin в вашем домашнем каталоге), либо в /usr/local/bin/ Первое означает, что сценарий будет работать только для вас, второе предназначено для сценариев, которые вы хотите, чтобы кто-нибудь в системечтобы иметь возможность работать.

Если вы введете его в ~/bin, вам может потребоваться добавить его в переменную среды PATH./usr/local/bin уже должен быть на пути.

16 голосов
/ 13 октября 2016

Есть два способа сделать это -

  1. Поместите ваш скрипт в usr / local / bin и убедитесь, что он исполняемый (chmod + x my_script) (Это уже установлено в пути, вы можете проверить, выполнив echo $ PATH)
  2. Создайте папку в вашем домашнем каталоге с именем bin. (Для ваших личных сценариев)
    • cd ~ (переводит вас в домашний каталог)
    • mkdir bin (создать папку bin)
    • vim .bash_profile (для установки переменной среды пути)
    • export PATH = ~ / bin: $ PATH (нажмите i, затем добавьте эту строку, а затем выполните esc и введите: wq)
    • Теперь вы можете просто ввести имя вашего скрипта и запускать его из любого места.

** ПРИМЕЧАНИЕ : Если вы хотите запустить скрипт с сокращенной командой, а не набирать полное имя файла, добавьте в свой .bash_profile следующее:
alias myscript='my_script.sh'
Затем вы можете запустить скрипт, просто набрав myscript. (вы можете использовать любой псевдоним)

2 голосов
/ 03 июня 2018

Это очень просто, если вы знакомы с файлом 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!:)

Надеюсь, я кому-то помог!

С уважением,

AnonymousX

2 голосов
/ 10 февраля 2017

В операционной системе Mac

  • Открыть файл bash ~ / .bashrc.
  • добавьте путь вашего скрипта в ваш файл bashrc, используя export PATH = "$ PATH: /Users/sher.mohammad/Office/practice/practiceShell"
  • Откройте файл ~. / Bash_profile и добавьте [[-s ~ / .bashrc]] && source ~ / .bashrc
  • открыть новое окно терминала Теперь, когда вы откроете свой терминал, ваш скрипт будет загружен
2 голосов
/ 28 мая 2016

При использовании оболочки bash, напишите этот скрипт как функцию и затем поместите его в .bashrc или в исходный файл, содержащий эту функцию, с помощью «source file_name»

Теперь выполните скрипт по вызову функции в оболочке.

1 голос
/ 24 августа 2010

Либо сохранение его в /usr/bin (или любом другом каталоге, представленном в PATH), либо редактирование PATH для включения каталога, в котором вы его сохранили, в основном заставит его работать в любом каталоге.

0 голосов
/ 19 апреля 2019

из рабочего каталога 'script.sh' "mv [script.sh] / usr / local / bin" (не проверено, но кажется наименее сложным способом IMO.)

0 голосов
/ 24 августа 2010

Вы должны поместить его в глобальный каталог исполняемых файлов на вашем компьютере. Я думаю, что обычно это будет /usr/bin в операционных системах на основе Unix (однако это чаще всего потребует привилегий суперпользователя на этой машине).

Вы также можете поместить его в любой другой каталог, который находится в переменной окружения $PATH, хотя он будет работать только для тех пользователей, у которых этот каталог находится в этой переменной.

Чтобы узнать значение $PATH, введите echo $PATH в оболочке. Каталоги разделены :.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...