下面是一个 shell 脚本,预期从给定文件中一次选择一行并突出显示它。
#!/bin/sh
> myhighlight.txt
file='to_study.php'
cat $file | while read -r myline
do
export $myline
php -r 'highlight_string("$myline");' >> myhighlight.txt
done
PHP 无法理解 $myline 变量。有什么方法可以让这段代码正常工作吗?
答案1
您已将引号切换,您想要php -r "highlight_string('$myline');"
。就 PHP 而言,这将使其点亮一个常量字符串,这是 bash 提供给它的。
答案2
当您想逐字打印里面的所有内容时,请使用单引号。因此,PHP 将使用您的代码抛出以下错误:
PHP Notice: Undefined variable: myline in Command line code on line 1
使用双引号扩展变量:
php -r "highlight_string($myline);" >> myhighlight.txt
不需要$myline
用单引号括住变量。
总而言之,单引号比双引号更强。
PS:如果你在编写vim
,请注意语法高亮功能。默认情况下,字符串为红色,变量为紫色。