Я хочу, чтобы bash сначала выполнил команду, но после ее завершения (или Ctrl+ C'ed) перейдите в интерактивный режим (предпочтительно с командой в истории, доступной для up).
Как добиться этого самым простым и красивым способом?
Вдохновленный cmd.exe's /K
:
$ wineconsole cmd.exe /K echo qqq
qqq
Z:\home\wine>
history –s
работает.bash_profile
.Я не уверен на 100%, что я точно понимаю, о чем вы просите, и (увы) на данный момент у меня нет доступа к системе,
bash
на которой она установлена, но, возможно, вам поможет следующее. Поместите это в конце вашего.bashrc
:(где
.bash_initial_command
произвольное имя файла; выберите другое, если хотите), а затем напишите скрипт, который делает это:То есть, это помещает команду (которая представлена вышеупомянутому сценарию как аргумент (ы)) в место, где следующий интерактивный
bash
запуск найдет и выполнит ее. (Например, если вы запуститеset_up_cmd ls –l
, ваш следующийbash
запуститсяls –l
.)history –s
Помещает команду в историю, не выполняя ее.Примечание: я не знаю, будет ли это работать с
.bashrc
.Это потребует большего уточнения, если вы захотите использовать команды с кавычками (то есть, специальными символами в кавычках) или перенаправлением (
<
или>
); или составные команды (то есть, содержащий;
,|
,&&
, или||
).Небольшая проблема: если вы Ctrl+ Cкоманда, это, вероятно, прекратит
.bashrc
обработку и тем самым предотвратит.bash_initial_command
удаление файла. Вы, вероятно, можете справиться с этим, делаяЭто дает
.bash_initial_command
уникальное имя, чтобы избежать коллизий, и организует его удаление при выходе из оболочки.Если вам нужно , чтобы иметь возможность запустить несколько из них одновременно, рассмотрит построение названия «терминального»
$(basename $(tty))
в имени.bash_initial_command
файла.Конечно, выполнение этого делает еще более важным, чтобы убедиться, что ваш домашний каталог не доступен для записи никому, кроме вас.
источник
Вы можете добавить команду в свой
.bash_profile
или.bashrc
. Он запустится, как только вы откроете новое окно или войдете в систему.Смотрите эту страницу о различиях между двумя файлами.
источник