Просто у вас не установлена переменная окружения DISPLAY=:0
.
Ты можешь бежать:
export DISPLAY=:0;./tripwire --update --twrfile./report/name.twr
или вы можете выйти из корневого сеанса терминала и начать новый, не передавая аргумент -, который заставит вас наследовать переменные env текущего сеанса, включая переменную DISPLAY
. Итак, нажмите ctrl + d , а затем запустите su
. Введите свой пароль, затем вы можете проверить свою среду с помощью команды env
и grep
дляDISPLAY
:
env | grep DISPLAY
вы можете изменить редактор по умолчанию на консольный, например nano
или vim
. Вы должны изменить, как указано в статье, поле EDITOR
в вашем файле конфигурации tripwire.
Tripwire will display the report file using the default text editor specified on the EDITOR line of the Tripwire configuration file
Выберите, как вы хотите это сделать. Любой из этих трех способов позволит вам открыть приложение на основе графического интерфейса или изменить настройку текстового редактора графического интерфейса на консольную.
Первый и второй варианты наиболее просты, если предположить, что вы хотите использовать графический редактор для просмотра содержимого отчетов Tripwire.
Вероятно, было бы разумнее написать это как:
BLUE=$'\033[1;34m'
NC=$'\033[0m' # No Color
eval "cat << EOF
$(<text_file)
EOF
"
, чем использование цикла while read
(, который не является правильным синтаксисом для чтения строк между прочим).
Конечно, это означает, что код будет интерпретирован. Например, $(reboot)
вызовет перезагрузку, но это более или менее то, о чем вы просите.
Это также предполагает, что text_file
не содержит строки EOF
.
Другой подход, который будет только делать переменную (переменную окружения )подстановку (а не подстановку команд, например ), заключается в использовании GNU gettext
'senvsubst
:
BLUE=$'\033[1;34m'
NC=$'\033[0m' # No Color
export BLUE NC
envsubst < text_file
Или так, чтобы раскрывались только эти две переменные:
BLUE=$'\033[1;34m'
NC=$'\033[0m' # No Color
export BLUE NC
envsubst '$BLUE$NC' < text_file
В более новых версияхbash
(начиная с версии 4.4 или около того )есть еще один хитрый способ косвенного расширения переменных в строках без необходимости полногоeval
:преобразования параметра @P
(= расширить как в подсказках , включая, помимо прочего, замены переменных ).
$ cat file.txt
${BLUE}hello blue${NORM}
$ BLUE=$'\e[34m'
$ NORM=$'\e[m'
$ while IFS= read -r line; do printf '%s\n' "${line@P}"; done < file.txt
hello blue