我该怎么写:
$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
但我不明白如何转义输入中的双引号。
除了 echo 之外,使用其他工具是否更好?如果可能的话,我宁愿不重写整个 PHP 脚本(它比示例中给出的 2 行要长!)。
答案1
有几种方法可以实现这一点:
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
还有更多可能的方法 - 以此作为测试事物的起点......
答案2
在 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
答案3
我的脚本将多行保存到.csv
文件中:
#! /bin/bash
while [ 1 ]
do
sleep 1s
str="\""$(date)"\""
echo ${str} >>333.csv
# begin add next row
echo ",\"" >>333.csv
# append multiline result
ps >>333.csv
# end add next row
echo "\"" >>333.csv
# begin add next row
echo ",\"" >>333.csv
# append multiline result
df -h >>333.csv
# end add next row
echo "\"" >>333.csv
sed -i ":a;N;s/\"\n\,/\"\,/g;ta" ./333.csv
done