Я не знал gnuplot's
команда "мультиграфика". Похоже, что Вы смогли делать то, из чего Вы хотите с разумным использованием set origin
, но я советовал бы делать help multiplot
и тщательно чтение, что это должно сказать.
До "сохранения числа" идет, я могу интерпретировать тот из двух путей:
gnuplot
конфигурация в тот момент, включая последнюю команду "графика". Вы сделали бы save "somefile.load"
в gnuplot>
подсказка. В некоторое более позднее время Вы сделали бы load "somefile.load"
в gnuplot>
подсказка для регенерации всего этого на экране.Произведите файл, содержащий число. Файл находится в некотором формате изображения как GIF, JPEG или некоторый печатаемый формат как PostScript. Сделать help set terminal
видеть, как установить терминал. Я предположу, что Вы хотите PostScript, но можно выбрать формат позже:
gnuplot> постскриптум термина набора
gnuplot> излагают "plot.ps"
gnuplot> переграфик
gnuplot> установленные сроки X11
У Вас должна быть печатаемая версия PostScript Вашего графика в файле "plot.ps" Для получения изображения GIF, Вы сказали бы set term gif
, set out "something.gif"
, и replot
. Иногда, выходной файл будет нулевыми байтами, пока Вы не сделаете set term x11
(или безотносительно).
Является самым легким при использовании zsh благодаря его спецификаторам шарика: [-1]
сохранить последнее соответствие и n
использовать числовую сортировку так, чтобы R9
прибывает прежде R10
. Можно также использовать в своих интересах <->
шаблон шарика для соответствия числам.
last_release=(releases/R<->(n[-1]))
if (($#last_release == 0)); then
echo 1>&2 "Fatal error: no release available"
exit 2
fi
Только с портативными инструментами самый легкий метод должен разгрузить числовую сортировку к sort
. Если у Вас только есть “ручные” имена файлов в releases
каталог (символы ASCII только, никакие управляющие символы, никакой пробел), фильтруя вывод ls
удобный способ генерировать список имен файлов.
set_last_release () {
set -- $(ls releases | sed -n 's/^R\([0-9][0-9]*\)//p' | sort -rn)
if [ $# -eq 0 ]; then
echo 1>&2 "Fatal error: no release available"
exit 2
fi
last_release=releases/R$1
}
Если Вы используете продвижение, обнуляет в Ваших номерах выпуска, можно полагаться на встроенную сортировку оболочки. Обратите внимание, что нет никакого портативного способа соответствовать только именам файлов, состоящим из R
сопровождаемый одним или несколькими цифра; в ksh можно использовать releases/R+([0-9])
, и можно также использовать это в ударе, если Вы помещаете shopt -s extglob
в начале Вашего сценария (это должно быть в действительности и когда функция анализируется и когда это выполняется).
set_last_release () {
set -- releases/R[0-9]*
if [ "$1" = 'releases/R[0-9]*' ]; then
echo 1>&2 "Fatal error: no release available"
exit 2
fi
eval last_release=\$$#
}
как насчет этого:
DIRECTORY=$(ls .../releases | tail -n 1)
Это работает, пока Ваши имена каталогов могут быть отсортированы как строки. например, '2' был бы после '12', если Вы не называете '2' на самом деле '02'
Просто попробуйте это:
for dir in releases/R*[0-9]/; do
echo "$dir"
done