sed unterminated's'命令

时间:2013-06-14 13:50:54

标签: linux bash sed

我有以下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('date +%Z'); = timezone_name_from_abbr(); date_default_timezone_set();

不是

  

$ shortName = exec('date +%Z'); $ longName = timezone_name_from_abbr($ shortName); date_default_timezone_set($ LONGNAME);

1 个答案:

答案 0 :(得分:4)

变量以双引号扩展,由于未设置$shortName,因此它变为空字符串。

逃离美元符号:\$

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