Редактирование bash_profile?

Я пытаюсь изучить удар. Я использую человечность.

Я хочу добавить функцию. Я не уверен погода, я должен создать a.profile или .bash_profile файл, таким образом, я создаю обоих в ~/ каталог.

Я добавляю что-то вроде этого в каждом:

myfunc()
{
    echo "function ran"
}

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

me@host:~ $ myfunc

который просто возвращается:

myfunc: команда, не найденная

Не уверенный, что я делаю неправильно.

1
задан 30.06.2010, 20:53

3 ответа

Ваш ~/.profile или ~/.bash_profile получены процессом входа в систему. Оболочка, которую Вы выполняете в окне терминала, выполняется в другом процессе, который является потомком процесса входа в систему. Определенные настройки, установленные процессом входа в систему, экспортируются в дочерние процессы, но псевдонимы и функциональные определения не. Псевдонимы и функции должны быть определены вместо этого в емкостно-резистивном файле Вашей оболочки, ~/.bashrc в этом случае. Тот файл получен каждым интерактивным процессом удара.

Что касается того, необходимо ли поместить настройки переменной среды и другой код запуска в ~/.profile или ~/.bash_profile, удар человека говорит, что оболочки входа в систему ищут ~/.bash_profile, ~/.bash_login и ~/.profile, в том порядке, и читают первый найденный. Таким образом, если у Вас будут и ~/.bash_profile и ~/.profile, то только ~/.bash_profile будет считан, и ~/.profile будет проигнорирован. То, которое Вы используете, ваше дело, но если Вы планируете использовать оболочки кроме удара, можно хотеть поместить настройки в ~/.profile и удалить ~/.bash_profile.

4
ответ дан 12.12.2019, 08:02

На командной строке просто введите:

function myfunc()

ВОЙТИ

{

ВОЙТИ

echo "function ran"

ВОЙТИ

}

ВОЙТИ

Вызовите функцию путем ввода функции как так:

$ myfunc

Удалите функцию при помощи:

unset -f myfunc

Проверьте их для получения дополнительной информации:

2
ответ дан 12.12.2019, 08:02

Видеть, какие файлы выполняются, в который порядок, Вы могли бы хотеть поместить единственное эхо или команду printf в тех файлах. Затем Вы будете видеть, когда они будут выполняться.

# You could try this
echo "This will be printed"
printf "This will also be printed (%d)\n" 10

Видеть, как эхо и работы печати, необходимо использовать человека (1) команда и изучить страницу справочника для удара (1). Круглая скобка после команд говорит Вам, какой раздел в руководстве Вы находите, что информация 1 означает обычную команду. Необходимо попробовать эти команды:

man man
man -k manual
man bash

В странице руководства для удара ищите раздел "SHELL BUILTIN COMMANDS" (попытка / и запишите то, что Вы ищете или используете клавишу "Пробел"). Существует информация о командах, которые встроены в удар, как эхо и printf.

1
ответ дан 12.12.2019, 08:02

Теги

Похожие вопросы