Skip to content

Instantly share code, notes, and snippets.

Created December 29, 2014 09:37
Show Gist options
  • Save anonymous/6aad703ae8a567db1eb2 to your computer and use it in GitHub Desktop.
Save anonymous/6aad703ae8a567db1eb2 to your computer and use it in GitHub Desktop.
Test
#!/bin/bash
# Запись строк из файла 'category_names' в массив CNAMES
declare -a CNAMES
let i=0
while IFS=$'\n' read -r line_data; do
CNAMES[i]="${line_data}"
((++i))
done < category_names
# Размер CNAMES
CNUMB=${#CNAMES[@]}
# Запись строк из нескольких файлов 'category*',
# каждый файл 'category*' - в свой массив 'CAT*'
for cnumb in `seq $CNUMB`; do
declare -a CAT$cnumb
let i=0
while IFS=$'\n' read -r line_data; do
eval CAT$cnumb[i]='"${line_data}"'
((++i))
done < category$cnumb
done
pdflatex -jobname=result <<EOF
\documentclass{article}
\usepackage{cmap}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, russian]{babel}
\usepackage{pgffor}
\begin{document}
% Это работает:
\foreach \n in {1,...,$CNUMB}{
\n.) ${CAT5[( $RANDOM % ${#CAT5[@]} ) + 1]}\par}
\vspace{10mm}
% Комментарий:
% вместо 'CAT5' нужно сделать 'CAT\n', чтобы каждая строка выводила
% строку из разных массивов, а не из одного.
% Такой вариант не работает:
% \n.) \${CAT\n[( $RANDOM % \${#CAT\n[@]} ) + 1]}\par}
% Но даже если он заработает, то %RANDOM всё равно не работает.
\end{document}
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment