Проблема со сценарием удара, выполняемым с веб-сайта

Вы пробовали koconverter? Это - часть koffice, освобождает

koconverter file.kwd file.odt

Если это не работает существуют любые другие инструменты командной строки, которые могут сделать это, которое означает, что необходимо сделать это вручную с каждым документом от последнего koffice.

1
19.02.2012, 15:39
3 ответа

Вывод плоскости top не подходит для отображения ни на чем кроме терминала. Необходимо использовать -b переключатель для получения простого текста.

И конец символов строки собирается быть разделенным (замененный пробелами) Вашей оболочкой с тем, что Вы делаете - нет никакой причины для Вас сохранить те выводы в переменных, Вы могли просто выполнить те команды при необходимости в них.

Я предполагаю, что Вы возвращаете данные веб-браузеру. Если это действительно имеет место, необходимо сделать некоторое минимальное форматирование HTML, если Вы хотите шанс при отображении вывода правильно.

Попробуйте что-то как:

#! /bin/sh
echo -e "Content-type: text/html\n"
echo "<html><body>"
echo "<h1>top</h1>"
echo "<pre>"
top -b -n 1
echo "</pre>"
echo "<h1>ps</h1>"
echo "<pre>"
ps aux
echo "</pre>"
echo "</body></html>"
3
27.01.2020, 23:13
  • 1
    Можете Вы говорить мне, почему я не могу использовать это top -b -n 1 > /home/username/t.txt ? ничто не создается в домашнем dir –  Patryk 19.02.2012, 15:45
  • 2
    , Вероятно, проблемы разрешения. Никакой способ сказать действительно без сообщения об ошибке. –  Mat 19.02.2012, 15:47
  • 3
    На самом деле, настоящая проблема (ре: портивший вывод), это $TOP должен быть записан как "$TOP" сохранить пробелы. Добро пожаловать в Оболочку Bourne. –  hhaamu 19.02.2012, 22:48

Причина, что Ваш вывод не является дисплеем, состоит в том, потому что Вы не следуете протоколу CGI. Необходимо отправить заголовки ответа сервера перед любым другим выводом.

TOP=`top -n 1`;
PS=`ps aux`;

echo "Content-Type: text/plain"  # response header
echo ""                          # end of headers
echo "that's top\n" $TOP;
echo "ps\n" $PS;

Текст/плоскость использования даст форматирование, Вы хотите, но не дадите использование HTML как гиперссылки. Для этого используйте:

TOP=`top -n 1`
PS=`ps aux`

echo "Content-Type: text/html"
echo ""
echo "<html>"
echo "<head><title>command output</title></head>"
echo "<body>that's top<br/>"
echo "<pre>$TOP</pre>"
echo "<br/>ps<br/>"
echo "<pre>$PS</pre>"
echo "</body>"
3
27.01.2020, 23:13

Если бы это было выполнено в терминале при повторении их, то необходимо поместить кавычки вокруг переменной для хранения символов новой строки.

TOP=`top -b -n 1`;
PS=`ps aux`;

echo "that's top";
echo "$TOP";
echo "ps";
echo "$PS";

Если вывод отправляется в веб-страницу, то Вам дополнительно нужно пред теги

TOP=`top -b -n 1`;
PS=`ps aux`;
echo "<pre>";
echo "that's top";
echo "$TOP";
echo "ps";
echo "$PS";
echo "</pre>";
1
27.01.2020, 23:13

Теги

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