プレフィックス

プレフィックス

シェルスクリプトを介してこのコンテンツを含むファイルを生成する必要があります/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

おすすめ記事