【发布时间】:2013-04-28 06:35:31
【问题描述】:
我在 bash 脚本中有一个 sed 命令,它将文件中的第 10 行替换为变量的值。 好的停止混淆(这是我的错,这是完整的脚本:
#!/bin/bash
#Sync timezone between system and php
##get current timezone of system
line=$(head -n 1 /etc/sysconfig/clock)
timezone=${line:6}
##Set up php date string
time="date_default_timezone_set('${timezone%?}');"
sed -i 10s|.*|$time| test.php
所以时间的值如下:
date_default_timezone_set('欧洲/伦敦')
现在给出这些错误:
> test.php: Permission denied
> date_default_timezone_set('Europe/London);: Not such file or direcotry
> .: .:: is a directory
> sed: -e expression #1. char 3: unterminated 's' command
任何帮助都会很棒,如果您需要更多信息,请告诉我!
【问题讨论】:
-
这会将整行替换为
$time。你不是只想替换部分行,比如$timezone吗? -
是的,另一种选择是将行保留在 test.php 中并仅更新 $timezone 部分。我不知道该怎么做,所以只做了整条线,但如果你能做到,那就太好了
-
这会将整行替换为
$time。您的 PHP 文件中将有一行仅包含$time。通常,这是无效的 PHP。 --哦等等,我明白了…… -
是的 php 文件第 10 行只是 $time 这确实适合我的目的
-
我在想 $time 是一个 PHP 变量,但它是一个 bash 变量......没关系。