Путаница в команде konsole в Linux

Путаница в команде konsole в Linux

Я пытался открыть новый терминал konsole и исходный файл после его открытия. Я попробовал следующую команду:

konsole -T hello --noclose -e "source file"

Я хотел, чтобы терминал оставался открытым после загрузки файла, но даже с --nocloseновой консолью закрывается. Как мне сохранить консоль открытой

решение1

Полагаю, вам нужен интерактивный сеанс после запуска исходного файла.

konsole использует вызовы system() или popen() для выполнения параметра -e. source — встроенная функция bash, поэтому вы не можете просто вызвать ее.

Трудно заставить bash запустить команды, а затем начать интерактивный сеанс. Есть параметры --init-file и --rc-file, но они будут использоваться вместо ваших обычных файлов конфигурации. Это может быть неудобно.

Я думаю, этот скрипт вам подойдет.

#!/usr/bin/env bash
source file
exec bash    

Поместите его в файл "script.sh", сделайте его исполняемым и запустите таким образом.

# Edit script.sh
chmod +x script.sh
konsole -e ./script.sh

Я полагаю, вы установили некоторые переменные в вашем файле. Он должен быть экспортирован, если он используется в интерактивном сеансе.

export VAR=value

Или, если вам не нужен интерактивный сеанс, вы можете использовать этот скрипт

#!/usr/bin/env bash
source file
echo "Press enter to exit"
read   

Ну. Возможно, в konsole тоже есть ошибка. Наверное, стоит сообщить об этом.

Связанный контент