Как использовать SCSUDO для запущения скриптов с позиционными параметрами?

Если 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)'
3
22.12.2011, 22:47
1 ответ

Это тривиально, когда Вы знаете прием:

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" (вместе со встроенными пробелами), и не находит его, следовательно ошибка.

3
27.01.2020, 21:24

Теги

Похожие вопросы