LINUX.ORG.RU

Как менять переменные среды терминала извне?


0

1

Есть большое кол-во переменных среды, хочу их менять на лету, то есть запущен например терминал, я приатачиваю его к программе, в программе уже есть батоны и чекбоксы, нажимая на которые в приатаченом терминале меняются переменные среды, как это лучше всего сделать?
Ну или например программа в которой встроен терминал(как в дельфине) и есть готовый интерфес, нажимая на кнопки в терминал отправляется export bla-bla или unset bla-bla, но хотелось бы что-то покрасивее. Вроде konsole можно через d-bus рулит, консольные команды тоже можно посылать?

★★★★★
Ответ на: комментарий от anonymous

мне не нужно менять на лету для программы, мне нужна консоль в которой мышкой можно менять переменные, и запускать из нее программы которые уже будут использовать измененные переменные.
Можно считать что мне лень печатать постоянно десятки переменных.

Novell-ch ★★★★★
() автор топика

Вроде konsole можно через d-bus рулит, консольные команды тоже можно посылать?

qdbus org.kde.konsole /Sessions/72 sendText $'export TEST="test"\n'
rival ★★
()

Ну тут три пути. Первый - это слать текст в терминал, через d-bus или xdotool или аналогичным способом. Второй - сделать свой /bin/sh. Третий, я бы сделал именно так, - заставить управляемый шелл по сигналу брать и выполнять команды из сокета.

trap "source /tmp/bash-control-XXX.fifo" SIGUSR2

и управлять так:

echo "export FOO=BAR" > /tmp/bash-control-XXX.fifo & kill -USR2 $BACHPID

Тогда юзерский ввод не будет замусорен.

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.