Например, в моем файле .bashrc
есть функция:
function open_bashrc() {
gedit ~/.bashrc
source ~/.bashrc
}
Так что где бы я ни был, если я наберу open_bashrc
, то откроется файл .bashrc
. Я могу открыть его и изменить, но после сохранения и закрытия он не выполняет второй шаг source .bashrc
. Вместо этого мне приходится самому набирать source ~/.bashrc
. Почему? Что не так с функцией?
У меня есть это в моем файле псевдонимов, и это работает:
псевдоним bashrc='vim ~/.bashrc && source ~/.bashrc'
Может ли быть так, что в вашем контексте выполнения gedit
не разрешается как исполняемая программа gedit, а как сценарий оболочки, функция или псевдоним, который выполняет gedit в фоновом режиме ? В противном случае я не вижу причин, по которым источник не должен выполняться.
Собственно, &&
я бы не использовал, как предложил полвоазул. Это решение приведет к тому, что.bashrc будет получен только в том случае, если gedit вернется с нулевым кодом выхода. Хотя мы, безусловно, должны надеяться, что программа с хорошим -поведением должна завершаться с 0, если все прошло хорошо, я видел достаточно программ, которые не заботятся о кодах выхода, а справочная страница gedit ничего не говорит о коде выхода., что технически означает, что код выхода не указан. Я бы не хотел, чтобы мои функции зависели от этого...