Мой вопрос: как я могу изменить оболочку по умолчанию для 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 может повлиять на общую производительность системы.