Предотвратить вывод на экран heredoc

Я пишу скрипт оболочки bash, целью которого является создание php-скелета для новых проектов.

Чтобы создать определенные документы php во вновь созданной структуре каталогов, я использую HEREDOC с тоннами кодов.

sudo tee $projectname/www/index.php <<- EOF | > null
<?php

ob_start();

require_once 'inc/header.inc';

ob_end_flush();
?>
EOF

## Create header.inc
sudo tee $projectname/www/inc/header.inc <<- EOF 1>&2

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
....
EOF

Проблема в:
Все строки HEREDOC отображаются на экране. Это действительно не то, что я хочу, это выглядит очень грязно.
Итак, я попытался выдать это, перенаправив вывод на nullа также /dev/null, К сожалению, без успеха.

Исследование:

2

Решение

Ваш синтаксис перенаправления неверен. Потерять |

sudo tee $projectname/www/index.php <<-EOF >/dev/null

Другая попытка перенаправления у вас есть 1>&2 просто перенаправит стандартный вывод на стандартную ошибку, которая (как правило) в любом случае попадает на ваш экран. Это полезно, но не для того, что вы пытаетесь достичь.

Лучше было бы гигиенически создать проект самостоятельно и использовать отдельную инфраструктуру развертывания (контроль версий и) для публикации рабочей версии, только когда у вас есть что-то подходящего качества и полноты. Тогда вам не нужно sudoи тогда тебе не нужно tee,

cat <<-EOF >$projectname/www/index.php

sudo tee file >/dev/null трюк немного антипаттерн, чтобы позволить вам писать файлы, как с cat когда вы используете sudo,

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]