Вывести несколько строк текста в файл в Bash?

5

Как мне написать:

$count = mysql_num_rows($result);
print "<h3>$count metal prices available</h3>";

в файл index.php?

Я пробовал:

echo "$count = mysql_num_rows($result);
print "<h3>$count metal prices available</h3>";" > index.php

но я не понимаю, как избежать двойных кавычек, которые находятся на входе.

Было бы лучше использовать что-то другое, чем эхо? Я бы не стал переписывать весь PHP-скрипт, если это возможно (он длиннее двух строк, приведенных в примере!).

Ричард
источник

Ответы:

12

Было бы несколько способов сделать это:

 cat >index.php <<'EOT'
 $count = mysql_num_rows($result);
 print "<h3>$count metal prices available</h3>";
 EOT

или же

 echo '$count = mysql_num_rows($result);
 print "<h3>$count metal prices available</h3>";' > index.php

или же

 echo '$count = mysql_num_rows($result);' >index.php  # overwrites file if it already exists
 echo 'print "<h3>$count metal prices available</h3>";' >>index.php  # appends to file

Есть гораздо больше возможных способов - использовать это в качестве отправной точки для тестирования вещей ...

КТФ
источник
Особенно мне нравится первый. Спасибо!
Таранаки
3

В bash все, что вам нужно сделать, это заменить внешние кавычки одинарными кавычками:

echo '$count = mysql_num_rows($result);                                                                  
print "<h3>$count metal prices available</h3>";' > index.php

Если вам нужно сделать более сложную вещь, вы можете повторить несколько раз, используя «>>», который добавляется вместо перезаписи:

echo '$count = mysql_num_rows($result);' >> index.php
echo 'print "<h3>$count metal prices available</h3>";' >> index.php
Джон Лин
источник