2

Мой вопрос: как я могу изменить оболочку по умолчанию для gnuplot? Я хочу изменить его, чтобы отправить стандартный вывод в bash.

Это должно быть довольно легко, но я сдаюсь. Вот почему

Я использую gnuplot ver. 4.6 уровень обновления 3 на Lubuntu 13.10.

Моя интерактивная оболочка по умолчанию - bash (оболочка Bourne-again), а оболочка входа в Lubuntu, похоже, dash (оболочка Debian Almquist). Нет проблем с этим.

Но gnuplot также использует dash вместо bash. Это то, что я получил, когда спросил gnuplot:

gnuplot> system "echo $0"
sh

И тогда, когда я спрашиваю мою оболочку:

$ which sh
/bin/sh
$ ls -goh /bin/sh
lrwxrwxrwx 1 root root 4 Dec 23 09:30 /bin/sh -> dash

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

Это не должно быть проблемой, это ничего, что sed и цикл не могут решить, но вызов sed или bash-скрипта с использованием команды системного вызова gnuplot мне не помог. Последние три строки последнего файла всегда отсутствуют. Тем не менее, запуск того же самого из чистого bash делает довольно чистую работу.

Я также попробовал опоссит, вызывая gnuplot из скрипта bash, включая команды печати в скрипте gnuplot и пытаясь записать вывод std gnuplot в переменную bash, но это тоже не сработало. Например, попытка следующей строки из bash возвращает сообщения в вывод std, но не сохраняет содержимое в переменной.

var=$(gnuplot plot.gnu)

Я не знаю, является ли это проблемой Lubuntu или gnuplot. Я уже решил проблему с текс-файлами с помощью обходного пути, но оболочка gnuplot все еще беспокоит меня.

Поэтому я спрашиваю об этом в общих чертах: ¿Как я могу изменить оболочку по умолчанию для gnuplot? Является ли это возможным? Может быть, это может быть полезно для кого-то еще. ;)

Отредактировано 2016-08-03

Первоначальный вопрос был о том, как запускать команды и скрипты bash из gnuplot с помощью системного вызова (с помощью system команды). Однако решение, которое я предложил для этого вопроса, состояло в том, чтобы заменить исходную системную оболочку дистрибутива dash на оболочку, которую я знал, bash.

Изменение системной оболочки на bash может повлиять на общую производительность системы.

1 ответ1

1

Лучшим решением, которое я нашел, было настроить bash в качестве оболочки по умолчанию для всей системы (Ubuntu).

sudo dpkg-reconfigure dash

Эта строка открывает помощника ncurses, который спрашивает о том, чтобы dash был системной оболочкой по умолчанию.

Если кто-то отвечает « нет», тогда bash устанавливается как системная оболочка по умолчанию.

После этого мои скрипты gnuplot работали без нареканий.

Отредактировано 2016-08-03

Примите во внимание, что это решение меняет оболочку по умолчанию вашего дистрибутива Linux, и это может повлиять на общую производительность системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .