2013-07-18 3 views
3

У меня возникла проблема со сценарием оболочки и надеюсь, что вы сможете помочь.
Я хочу, чтобы оптимизировать HTML форматирование следующего кода:Linux busybox shell script html форматирование

#! /bin/sh 

cat <<EOF > myfile # temporary file 
#! /bin/sh 

echo -e "Content-type: text/html; charset=iso-8859-1\n\n" 
echo -e "<html><head>\c" 
echo -e "<title></title>" 
echo -e "</head>" 
echo -e "<body>\c" 
echo -e "<p>Text</p>" 
echo -e "</body></html>" 

EOF 
chmod 777 myfile 
mount -o bind myfile myfile # mount temporary on the original myfile 
rm myfile 

Я удалил эхо -e и двойные кавычки. Я также пробовал:

#! /bin/sh 

cat <<EOF > myfile # temporary file 
#! /bin/sh 

echo -e ' 
<html> 
    <head> 
     <title></title> 
    </head> 
     <body> 
      <p>Text</p> 
     </body> 
</html> 
' 

EOF 
chmod 777 myfile 
mount -o bind myfile myfile # mount temporary on the original myfile 
rm myfile 

Что случилось со сценарием?
Полезное примечание: приведенный выше код является содержимым файла .cfg, который загружается при каждой перезагрузке.
Файл .cfg затем вставляет содержимое между маркерами EOF в myfile, что является скриптом CGI.
Может ли это быть проблемой?

+0

Благодаря людям, которые пытались помочь. Я должен был сделать вопрос более ясным в начале, потому что это было немного запутанным. Проблема решена. –

ответ

0

я, наконец, нашел решение:

#! /bin/sh 

cat <<EOF > myfile # temporary file 
#! /bin/sh 

echo -e "Content-type: text/html; charset=iso-8859-1" 
echo -e " 
<html> 
    <head> 
     <title></title> 
    </head> 
     <body> 
      <p>Text</p> 
     </body> 
</html>\c" 

EOF 

chmod 777 myfile 
mount -o bind myfile myfile # mount temporary on the original myfile 
rm myfile 

BusyBox оболочка не отображать вставленных вкладки в редакторе VI правильно, так Я использовал комплект: noai.
set: noai решил проблему с вкладкой, но после этой строки была добавлена ​​дополнительная строка.
Решение этого было с помощью символа escape \ c.
Если у кого-то есть лучший ответ, не стесняйтесь публиковать его.

0

Нет необходимости в эхо--e и цитаты,

cat <<eof> shellhtml.htm 
<html> 
</html> 
eof 

Это работает.

0

Очень близко :-) Вам не нужен echo.

#! /bin/sh 
cat <<EOF > myfile 
<html> 
    <head> 
    <title></title> 
    </head> 
     <body> 
     <p>Text</p> 
     </body> 
</html> 
EOF 
0

Добавить #!/Bin/ш к вершине, и устранить строку, начинающуюся с эхо-е, а линия с одиночной кавычки до EOF. Тогда ваш html будет правильно доставлен в myfile.

Так правильный сценарий оболочки будет: -

#!/bin/sh 
cat <<EOF > myfile 
<html> 
<head> 
<title></title> 
</head> 
    <body> 
    <p>Text</p> 
    </body> 
</html> 
EOF 
+0

Я пробовал этот, но на странице html ничего не отображается, как с эхом. –

+0

Результат должен быть в файле myfile. Для меня он работает отлично. – Yehuda

+0

Он все еще не работает. В чем может быть проблема? Мне действительно нужен ответ на этот вопрос. –

Смежные вопросы