逐行高亮显示代码

逐行高亮显示代码

下面是一个 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,请注意语法高亮功能。默认情况下,字符串为红色,变量为紫色。

相关内容