Как добавить функцию в .bash_profile / .profile / bashrc в оболочке?

У меня есть функция, которая преобразует эпоху на сегодняшний день. Вот определение

date1(){ date -d @$1 } 

Я хотел бы иметь возможность написать:

  • почему grep '\ ;.' expand to grep '\' '\;.' \ '' 'при выполнении над ssh?
  • проверять содержимое файла с помощью регулярных выражений bash
  • Как защитить от чистки истории bash?
  • Как использовать вставленные значения с помощью getopts
  • Упорядочено по карте вставки в bash
  • Удаление непечатаемых символов из журналов ожидания?
  •  $ date1 xxxyyy 

    Где xxxyyy – это параметр, который я передаю в свою функцию, чтобы получить соответствующую дату. Я понимаю, что я должен добавить его в .bash_profile , .profile или .bashrc а затем .bashrc его:

     $ source file 

    Но я не уверен, в какой файл его вставить. В настоящее время у меня есть файл .profile . Но чтобы запустить его, я должен каждый раз выполнять source .profile .

    В идеале, он должен сделать его доступным, когда компьютер запускается, как переменная среды.

  • Вывод файла Bash и yml-файла
  • Завершить второй (параллельный) процесс, если первый из них завершен
  • Используя команду sed, чтобы найти первое вхождение шаблона и добавить
  • Сценарий зависает после входа в zenity
  • Как добавить данные из нескольких файлов в один файл?
  • Каталог коров?
  • 4 Solutions collect form web for “Как добавить функцию в .bash_profile / .profile / bashrc в оболочке?”

    От man bash :

    Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром –login, она сначала считывает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.

    Другими словами, вы можете поместить его в любой из ~/.bash_profile , ~/.bash_login или ~/.profile или любой source файлов d любым из них . Обычно ~/.profile будет source ~/.bashrc , который является «личным файлом инициализации, выполняемым для систем входа».

    Чтобы включить его, либо запустите новую оболочку, запустите exec $SHELL либо запустите source ~/.bashrc .

    После того, как вы определите функцию в своем .profile , добавьте export -f date1 . Это будет экспортировать функцию для использования вашей оболочкой входа.

    Настройка для интерактивных оболочек переходит в ~/.bashrc . Вещи, которые вы хотите запустить при входе в систему, идут в ~/.profile (или ~/.bash_profile , но часто не загружаются при входе в систему графически).

    Поместите это определение функции в ~/.bashrc .

    Поскольку bash не загружает .bashrc когда это оболочка входа, заставьте это сделать: напишите ~/.bash_profile содержащий

     . ~/.profile case $- in *i*) . ~/.bashrc;; esac 

    т.е. load ~/.profile , а также load ~/.bashrc если оболочка является интерактивной.

    См. Альтернативу .bashrc и связанным там сообщениям.

    csh и tcsh не поддерживают такие функции, как bash, но вы можете это сделать.

    Например, вот простая функция для печати некоторого текста

     alias print_hello_world 'eval echo "hello world"' 

    передача аргументов скрипту

     repeate_after_me 'eval echo "$1"' 

    делать многострочный код, как оператор if, довольно сложно, но здесь вы идете.

     alias X 'eval "if (\!:1 =~ 'yes') then \\ echo yes \\ else \\ echo no \\ endif"' 

    вам все равно придется вычислять, но самая сложная часть выполняет синтаксис \!:[x] чтобы получить ввод из командной строки.

    Этого должно быть достаточно, чтобы вы разобрались.

    Linux и Unix - лучшая ОС в мире.