2016-10-27 11 views
1

私の.confファイル内の情報を置き換えようとしていますが、変数$ポートがリテラル文字列として渡されています。どのようにsedコマンドを使ってこれを達成できますか?sedコマンドで.confファイルに変数を渡す方法

ほとんど
sed -i -e 's/Listen 80/Listen "$port"/g' /etc/httpd/conf/httpd.conf 

答えて

2

:D

sed -i -e 's/Listen 80/Listen '$port'/g' /etc/httpd/conf/httpd.conf 

または

脇のsedから
sed -i -e "s/Listen 80/Listen $port/g" /etc/httpd/conf/httpd.conf 
1

その他のオプション:

HTTPDは、あなたがこのような変数を設定することができ、環境変数のための特定のファイルが付属していますそれはenvvarsと呼ばれています。実際には、 httpdを起動する前に、好きな変数でファイルやその他のファイルをロードします。

envvarsもHTTPDに付属のapachectlスクリプトによって呼び出されます。

注:Debianは、このファイルを広範に使用し、サーバー構成内の変数を広範囲に使用します。 2.4では


、あなたも、あなたが設定の多くの場所で頻繁に使用するディレクティブまたは名前のインスタンスのために、httpdのためのコンフィギュレーションファイル内のディレクティブDefineを使用することができます。例えば

Define sslport 443 

、その後:あなたは、変数の広範な使用を必要とする場合には、極端な:)

かもしれないが

Listen ${sslport} 
<Virtualhost *:${sslport}> 

だから、あなたも、2つのメソッドを混ぜることができ

関連する問題