シェルスクリプトを介してこのコンテンツを含むファイルを生成する必要があります/opt/nginx/conf.d/default.conf
。ファイルがない場合は作成する必要があります。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
}
シェルスクリプトを介して複数行のコンテンツを作成する方法は?
ディレクトリを作成しました。
sudo mkdir -p /opt/nginx/conf.d
しかし、ファイルに書き込む方法がわかりません。
ベストアンサー1
要約:>>
追加用、[ -f file ]
テスト用です。
努力する
if [ ! -f myfile ]
then
cat <<EOF > myfile
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name $server ;
root /usr/share/nginx/html;
}
EOF
fi
- この
cat <<EOF
構文ここのドキュメント」。 $server
その値に置き換えられたり、定義されていない場合は空です。- 指摘したように、単一引用符を使用すると、
'EOF'
varがある場合にvarを置き換えることを防ぐことができます。 エコーが複数ある場合もあります(多すぎるとメンテナンスが難しい場合があります)。
echo "## foo.conf" > foo.conf echo param1=hello >> foo.conf echo param2=world >> foo.conf
プレフィックス
Bashには直接追加はありません。一時ファイルを使用するか、
mv file file_tmp
cat new_content file_tmp > file
rm file_tmp
または修正してください
sed -i -e '1r new_file' -e 'wq' file