Если TEX, который Вы хотите произвести, фиксируется в Вашем сценарии, самое безопасное должно использовать что-то вроде этого:
cat > $2.tex << 'ENDHEADER'
\documentclass{article}
\usepackage[utf8x]{inputenc}
\pagestyle{empty}
\begin{document}
\[
ENDHEADER
echo $1 >> $2.tex
cat >> $2.tex << 'ENDFOOTER'
\]
\end{document}
ENDFOOTER
Данные между cat
и END
маркеры будут произведены, как без замен. (Я предполагаю, что все добавленные новые строки в порядке.)
Удостоверьтесь, что Вы используете твердые кавычки ('
) когда Вы передаете свой TEX как аргумент:
./your_script '\left( \begin{array}{cc}1 & 2\\ 3 & 4\end{array} \right)'
Это тривиально, когда Вы знаете прием:
scsudo - <functional_id> sh -c "/opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3"
Вы могли бы также смочь использовать:
scsudo - <functional_id> /opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3
если сценарий запускается с соответствующей хижины (#!/bin/sh
или #!/bin/bash
или безотносительно).
Поскольку Вы записали это, scsudo
команда надеется выполнять программу в /opt/scripts
названный "Start_Process_script.sh parameter1 parameter2 parameter3"
(вместе со встроенными пробелами), и не находит его, следовательно ошибка.