1

ファイルの10行目を変数の値に置き換えるbashスクリプト内にsedコマンドがあります。わかりました混乱を止めてください(これは私のせいです。完全なスクリプトは次のとおりです:

#!/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

さらに情報が必要な場合はお知らせください。

4

3 に答える 3

0

timezone文字が含まれているため/、何か特別なことをする必要があります。

sed -i 10s@.*@$time@ test.php

ソース文字列と宛先文字列に含まれていない任意の文字を使用できます。ここで私は を選び@ました。

于 2013-05-03T19:23:21.823 に答える