При просмотре журнала Git выясняется, что поведение --run-string
(т. Е. -r
) было изменено в коммите fa97979. Таким образом, текущее поведение считается правильным, для чего оно стоит. Тем не менее, по адресу (1), вы можете попробовать опцию --batch-string
вместо --run-string
.
About (2), хотя знак доллара подавляет вывод, ввод по-прежнему отображается, и вот что ты видишь. Я не знаю способ подавления ввода также. На данный момент я вижу несколько возможных подходов.
Один из них - пропустить --very-quiet
, чтобы получить метки ввода и вывода. Затем выполните grep для вывода меток вывода или, точнее, grep для метки вывода, за которой следует ноль или более строк, которые не имеют метки (для захвата многострочного вывода).
Другой подход заключается в том, чтобы просто забыть о метках и сказать with_stdout("/tmp/foo.out", print(...))
, где вы распечатываете материал, который имеет отношение к дальнейшей обработке, а затем просто выгрузить файл /tmp/foo.out
или как он будет вызван впоследствии. Это немного неуклюже, но, вероятно, проще получить именно то, что вы хотите в выходном файле.
Иногда я создаю bash сценарии, которые выглядят как
cat << EOF > /tmp/foo.mac
someflag: true;
somevar: 1234;
foo: expand (something (something));
EOF
maxima --batch=/tmp/foo.mac
, поэтому bash скрипт создает программу Maxima, а затем Maxima выполняет ее. Это особенно полезно, если я хочу использовать bash переменные (например, имена файлов или что-то) в программе Maxima, например
f=$1-$2.csv # something I just made up
cat << EOF > /tmp/foo.mac
myinput: openr ("$f");
/* etc etc */
EOF