【发布时间】:2026-01-13 07:30:01
【问题描述】:
我需要在 bash 脚本中读入一个 php 模板文件,然后替换模板中的一些变量(可以是任何东西,比如$(variable)),最后将整个内容输出到一个新文件中。
我原来有
stuff=$stuff bash templatefile > newfile
对于非 PHP 文件
cat <<END
//stuff
END
但我的 php 模板文件看起来像
#!/usr/bin/php
<?php
//lots of php variables, so can't use bash variables that have the same $ prefix
?>
因为 PHP 也像 bash 一样为它的变量使用 $ 前缀,所以我不能轻易地传入参数。我该怎么办?
【问题讨论】:
-
你能举个例子作为输入和期望输出吗?
-
@Kent 我的输入是 php 文件,输出是带有替换变量的 php 文件 - 但是我不确定如何传递 bash 变量以进行替换。
-
我认为关键问题是:为什么你要这样做?
-
@Sorpigal 我在设置新的虚拟主机时尝试创建一个 bash 脚本,该脚本会为该新虚拟主机创建一个自定义的 php 脚本。这本来是一个简单的替换,所以我认为上下文无关紧要。
-
@xiankai:这很重要,因为你的所作所为在我脑海中敲响了警钟。如果您的 PHP 脚本需要外部工具来修改它才能工作,它就会损坏。代码就是代码;为什么不让 PHP 脚本自己定制呢?至少让它读取一个配置文件。然后以任何你喜欢的方式生成一个新的配置文件。无需编写shell代码即可生成php代码;这太疯狂了。