У меня есть функция, которая преобразовывает время эпохи в дату. Вот определение
date1(){
date -d @$1
}
Я хотел бы иметь возможность написать:
$ date1 xxxyyy
Где xxxyyy - это параметр, который я передаю в свою функцию, чтобы получить соответствующую дату. Я понимаю , что я должен добавить его в любом .bash_profile
, .profile
или .bashrc
и его источником:
$ source file
Но я не уверен, в какой файл его вставить. В настоящее время он у меня есть .profile
. Но чтобы запустить его, я должен делать source .profile
каждый раз.
В идеале, он должен делать его доступным, когда компьютер запускается как переменная среды.
Ответы:
От
man bash
:Другими словами, вы можете поместить его в любой из
~/.bash_profile
,~/.bash_login
или~/.profile
, или в любой файлsource
, любой из которых . Обычно~/.profile
источником~/.bashrc
будет «личный файл инициализации, выполняемый для оболочек входа».Чтобы включить его, запустите новую оболочку, запустите
exec $SHELL
или запуститеsource ~/.bashrc
.источник
.bash_profile
мне придется делать этоsource ~/.bash_profile
каждый раз, когда я открываю терминал с помощью ярлыкаCtrl+Alt+T
.source ~/.bash_profile
каждый раз, то это указывает на то, что ваша установка Bash каким-то образом нестандартна или сломана (согласноman bash
упомянутому выводу). Вы уверены, что на самом деле используете Bash? Например, что-echo $BASHPID
нибудь печатает?#!/bin/sh
в начало,.profile
чтобы определить функцию?После того, как вы определите функцию в вашем
.profile
, добавьтеexport -f date1
. Это экспортирует функцию для использования вашей оболочкой входа в систему.источник
Настройки для интерактивных оболочек идут в
~/.bashrc
. Вещи, которые вы хотите запустить при входе в систему~/.profile
(или~/.bash_profile
, но они часто не загружаются при входе в систему графически).Поместите это определение функции в
~/.bashrc
.Поскольку баш не загружается ,
.bashrc
когда это Войти оболочки, заставить его сделать это: написать~/.bash_profile
содержащийт.е. загрузить
~/.profile
, а также загрузить,~/.bashrc
если оболочка является интерактивной.См. Альтернатива .bashrc и ссылки, связанные там.
источник
csh и tcsh не поддерживают такие функции, как bash, но вы можете это сделать.
Например, вот простая функция для печати текста
передача аргументов скрипту
Делать многострочный код, как оператор if, довольно сложно, но вот, пожалуйста.
вам все равно придется пробовать eval, но самая сложная часть - это
\!:[x]
синтаксис для получения ввода из командной строки.Этого должно быть достаточно, чтобы разобраться с вами.
источник
Вы можете перенаправить все текущие функции в bashrc с помощью typeset .
Например, вот как я добавляю функцию команды openstack с необязательным параметром в bashrc:
Теперь он сохраняется для будущих сессий и может быть использован как:
или
источник
пункт 18: в моей старой памяти, когда администратор изучал ksh и bash, это был другой путь. 1: - / etc / profile - это sysWide. Файл / etc / skel содержит файл для новых учетных записей. Так как Bash сейчас главный общий дистрибутив. следующий будет 2: - ~ / .profile как системный стандарт, тогда в пределах содержимого .profile «если существует» .bash_profile поместит -> 3: - .bash_profile 4: - .bash_login 5: -. bashrc .bash_aliases будет в На мой взгляд, более правильный порядок, настройка стандартной среды Terminal и Shell и обычного .bash_login не найдены и не существуют (его пользовательский для каждого пользователя). При этом .profile $ PATH является основным, если.
Я обнаружил, что добавление .bash_profile .profile все еще доминирует и не уважает присутствие .bash_profile. Наряду с информацией заголовка никто не обновляет, например: bash startup Samples - этой структуры каталогов больше нет - вместе с примерами и / или файлами gzip'd. Так что обновление для Гну-Баш в порядке
источник