Программирование на Bash — создание пользовательской команды терминала — Mac

#macos #bash #vi

#macos #bash #vi

Вопрос:

Я попытался создать пользовательскую команду для своего терминала. Я использую Mac OS X версии 10.6.6.

Вот шаги, которые я предпринял:

  1. Открыл терминал

  2. Набрал «ls -a» и увидел файл «.bash_profile»

  3. Набрал «vi .bash_profile» и увидел, что файл был пуст

  4. Добавлено следующее в начало файла: «test() { echo hi }»

  5. Сохранил сеанс vi, набрав «:wq»

Затем я вернулся к терминалу и набрал «test», однако ничего не выдал (а именно, я не увидел «hi»).

Итак, что я делаю не так? Спасибо!

Комментарии:

1. Принадлежит superuser.com

2. или вы можете просто перезапустить терминал после завершения.

Ответ №1:

попробуйте принудительно выполнить повторную оценку файла, введя source .bash_profile

Комментарии:

1. вау, круто! это сработало. что пошло не так? и что такое «исходный код»

2. при повторном использовании source команда в основном анализирует файл. Вероятно, вы захотите поместить свою функцию в .bash_rc , тогда она будет автоматически загружаться при каждом открытии терминала.

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

4. @reising1: Я предлагаю не называть вашу функцию (ОНА же пользовательская команда) ‘test’ из-за конфликта имен с командой с именем ‘test’.

5. Вам просто нужно было перезапустить терминал

Ответ №2:

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

При редактировании файла bash.profile необходимо использовать alias команду. Например: alias [name]="[script]" Поскольку вы пытаетесь создать тестовую команду, которая отправляет вывод «hi», вам следует ввести test, где [name], и echo hi, где [script]. Не забывайте использовать кавычки вокруг скрипта