0

我有以下 sed 命令:

Ctimezone="$shortName = exec('date +%Z');\
  $longName = timezone_name_from_abbr($shortName);\
  date_default_timezone_set($longName);"

sed -i 10s@.*@$Ctimezone@ /home/file.php

然而,这给了我错误:

sed -e expression #1, char 7: unterminated 's' command

我对 sed 的理解不是很好,所以我确信它很容易解决,但我自己无法解决。

如果您需要更多信息,请告诉我

变成:

sed -i "10s@.*@$Ctimezone@" /home/file.php

但放入 file.php 的是:

= exec('日期 +%Z'); = timezone_name_from_abbr(); date_default_timezone_set();

不是

$shortName = exec('日期 +%Z'); $longName = timezone_name_from_abbr($shortName); date_default_timezone_set($longName);

4

1 回答 1

4

变量在双引号中展开,并且由于$shortName没有设置,它变成一个空字符串。

转义美元符号:\$.

或者,如果您尝试修改的文件允许exec("date +%Z");尝试切换'". 单引号内没有替换。

于 2013-06-14T14:05:56.267 回答