我有以下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);
答案 0 :(得分:4)
变量以双引号扩展,由于未设置$shortName
,因此它变为空字符串。
逃离美元符号:\$
。
或者,如果您尝试修改的文件允许exec("date +%Z");
尝试切换'
和"
。单引号内没有替代品。