Я пытаюсь написать сценарий, который установит псевдонимы для моей оболочки bash, но я не хочу source
это автоматически в .bashrc
- Мне нужны псевдонимы в подмножестве моих терминалов.
Это возможно alias
команда в сценарии и работает ли команда с псевдонимом для оболочки, из которой был запущен сценарий?
Желаемый функционал:
$ alias
# ... no output here
$ ./my-script
$ alias
alias foo='bar'
alias alpha='beta'
...
Псевдонимы являются частными для оболочек, в которых они созданы. Их нельзя ни экспортировать, ни получить к ним доступ из родительской оболочки.
Самое простое решение - разбить псевдонимы в отдельный файл, как вы предлагаете, а затем либо создать этот файл вручную, либо добавить функцию в свой .bashrc
, который будет их источником при вызове.
function extra-aliases {
. /path/to/file/containing/additional/aliases
}
Нет. Псевдонимы являются частными для оболочки и подоболочки.
Нет.
Но чтобы предоставить «решение», хотя я не знаю, хотите ли вы этого.
Пытаться:
# alias
... nothing
# . ./myscript.sh
# alias
alias ls='ls -laR'
Обратите внимание .
перед ./myscript.sh
. Это source
.
Или почему бы не сделать из него псевдоним (в .bashrc):
alias mkalias="alias ls='ls -laR'; alias ll='ls -l'"