Мне нужно создать файл /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
Но я не знаю, как написать файл.
text-processing
files
nginx
user3142695
источник
источник
Ответы:
резюме: использовать
>>
для добавления, использовать[ -f file ]
для проверки.пытаться
cat <<EOF
называется « здесь документ ».$server
будет заменен его значением или пуст, если не определено.'EOF'
чтобы избежать замены var, если он есть.Вы также можете иметь многократное эхо (это может быть болезненно, если слишком много эхо)
предваряя
в bash нет прямого препендинга, либо используйте временный файл
или отредактируйте его
источник
$
(если они есть), не обрабатывались как переменные и, следовательно, не расширялисьcat
два файла вместе и переименовать результат.echo
s, все же более эффективно иметь только одно перенаправление, помещая их в блок:{ echo "foo"; echo "bar"; echo "baz"; } >file
- таким образом, мы не открываем зановоfile
каждый раз, когда просто хотим записать в него одну строку, и закрывая его, когда эта строка сделана.cat << EOF | sudo tee /opt/nginx/conf.d/default.conf ...
Если файл /opt/nginx/conf.d/default.conf не существует, выведите (f) статическую строку в файл:
источник
printf '%s\n' "first line" "second line"
чуть более читабельным; таким образом, не нужно читать всю строку, чтобы выяснить, где находятся побеги ...