Muszę utworzyć plik /opt/nginx/conf.d/default.conf
z tą zawartością za pomocą skryptu powłoki i utworzyć plik, jeśli nie istnieje:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
}
Jak pisać treści wielowierszowe za pomocą skryptu powłoki?
Stworzyłem katalog
sudo mkdir -p /opt/nginx/conf.d
Ale nie wiem jak napisać plik.
text-processing
files
nginx
użytkownik3142695
źródło
źródło
Odpowiedzi:
Podsumowanie: użyj
>>
do dołączenia, użyj[ -f file ]
do przetestowania.próbować
cat <<EOF
nazywa się „ dokumentem tutaj ”.$server
zostanie zastąpiony jego wartością lub pusty, jeśli nie zostanie zdefiniowany.'EOF'
aby uniknąć zamiany var, jeśli istnieje.możesz także mieć wiele ech (może to być bolesne w utrzymaniu, jeśli zbyt wiele ech)
przygotowując
w bash nie ma bezpośredniego dodania, albo użyj pliku tymczasowego
lub edytuj
źródło
$
(jeśli są obecne) nie były traktowane jako zmienne i dlatego nie byłycat
do dwóch plików razem i zmienić nazwę wyniku.echo
plików, bardziej efektywne jest posiadanie tylko jednego przekierowania, umieszczając je w bloku:{ echo "foo"; echo "bar"; echo "baz"; } >file
- w ten sposób nie otwieramy się ponownie zafile
każdym razem, gdy chcemy po prostu napisać do niego jedną linię, i zamykając go, gdy ta linia jest skończona.cat << EOF | sudo tee /opt/nginx/conf.d/default.conf ...
Jeśli plik /opt/nginx/conf.d/default.conf nie istnieje, wydrukuj (f) ciąg statyczny do pliku:
źródło
printf '%s\n' "first line" "second line"
może być nieco bardziej czytelny; w ten sposób nie trzeba czytać całego ciągu znaków, aby dowiedzieć się, gdzie są ucieczki ...