Сценарии, которые получают IP-адрес и информацию о системе, будут запускаться при загрузке, поэтому я перезапускаю getty @ tty1 в том же скрипте, и он сработал.
Вы можете добавить в свою среду список необходимых функций.
Создайте файл ~ / .bash_functions
и загрузите его из ~. / Bashrc
.
Так же, как источник ./ bash_aliases
:
if [ -f ~/.bash_functions ]; then
. ~/.bash_functions
fi
Затем определите столько (и столько сложных) функций, сколько захотите.
Вы можете определить псевдонимы (внутри ~ / .bash_aliases, чтобы поддерживать порядок) для функций. Но на самом деле это не нужно, поскольку вы можете напрямую вызывать исходные функции. Определив:
stash() {
if [[ -z $1 ]]; then
stash list;
else
git stash $1;
fi;
}
Вы можете вызвать его просто с помощью stash
или stash this
, псевдоним не требуется.
{ cat >myfunction.fn
. ./myfunction.fn
fn 1 2 3 4 5
} <<""
fn(){
printf %s\\n "$@"
}
1
2
3
4
5
оболочки. Команда
будет источником именованного файла в среде выполнения текущей оболочки. Любые функции, переменные, псевдонимы или другие типы состояний оболочки, определенные в нем, сохранятся, когда он вернет
s.
Вы можете выполнить определение функции типа автозагрузки , например, определив функцию-заглушку:
fn(){ . ./fn.file && fn "$@"; }
... где исходный файл содержит переопределение fn ()
:
fn(){
: a whole new fn
}
: any other init state commands you might like to run
Я не понимаю, зачем вы вставляете определения функций в псевдонимы. Ваш псевдоним stash
определяет функцию, вызывающую f
, а затем немедленно вызывает ее таким образом, чтобы получить аргументы, переданные псевдониму. Для повседневного использования это эквивалентно определению функции с именем stash
:
function stash {
if (($# == 0)); then
git stash list;
else
git stash "$@";
fi;
}
По сравнению с тем, что указано в псевдониме:
stash функции {…}
или stash () {…}
для определения функции. Они эквивалентны, за исключением того, что если вы уже определили псевдоним с именем stash
, он будет расширен при попытке определить функцию, поэтому определение не будет делать то, что вы хотите. . При определении функции либо убедитесь, что имя функции еще не определено как псевдоним, либо используйте синтаксис function
. (($ # == 0))
, чтобы проверить, есть ли у функции какие-либо аргументы, а не проверять, пуст ли первый аргумент. Намерение яснее. (И это позволяет использовать пустой аргумент, но здесь это все равно не имеет смысла.) "$ @"
вместо "$ 1"
при вызове git. «$ @»
передает все аргументы функции. Вы можете поместить определения функций в то же место, что и определения псевдонимов: в вашем .bashrc
, в .bash_aliases
или в другом файле, источником которого является .bashrc
, например
. ~/lib/git-functions.bash