Я пытался открыть новый терминал 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 тоже есть ошибка. Наверное, стоит сообщить об этом.