Я пытаюсь запустить одну команду в новом gnome-terminal
окно из сценария оболочки, и кажется что мой .bashrc
файл не становится полученным при вызове терминала гнома и выполнении команды:
gnome-terminal -t "my title" -e vim
Но это делает при запуске gnome-terminal
один:
gnome-terminal -t "my title"
(для тестирования просто добавьте a echo "something"
в конец .bashrc
)
Я также пытался явно получить .bashrc
перед выполнением vim
без успеха:
gnome-terminal -t "my title" -x $SHELL -c "source $HOME/.bashrc; vim"
Я пропускаю что-то?
Нет, вы правы. gnome-терминал не создает .bashrc при запуске команды через аргумент -e.
Bash и gnome-терминал - это две разные вещи. Когда вы запускаете без -e, gnome-терминал запускает оболочку по умолчанию (которая, как оказалось, bash). Когда вы запускаете с -e, gnome-терминал запускает указанную вами команду (bash не загружен, поэтому .bashrc не получен).
Ваш последний пример тоже не сработает. $ HOME является переменной в bash и недоступна. Кроме того, source - это команда bash, и vim, вероятно, нужен путь.
На мой взгляд, лучший способ сделать это - создать скрипт-обертку.
На вашем пути где-то (я добавил ~ / .bin / к своему пути) создайте файл с именем vim-x и установите его исполняемым.
#! / bin / bash
blockquote>
source $ HOME / .bashrc
vim "$ @"Затем вы можете запустить:
gnome-terminal -t "my title" -e /home/user/.bin/vim-x
Я нашел проблему с помощью этого ответа .
На самом деле .bashrc
был получен, но не полностью обработан из-за следующих строк:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
Чтобы обойти проблему, самым чистым подходом было бы заставить экземпляр оболочки работать в интерактивном режиме. режим (как видно здесь ):
gnome-terminal -t "my title" -x $SHELL -ic "vim"