Почему stdout не сбрасывается при перенаправлении ввода из FIFO?

У вас есть сервер MySQL или только клиент? Сервер должен быть запущен. Проверьте, есть ли у вас это.

$ sudo apt-get install mariadb-server

Затем запустите:

$ sudo service mariadb start Перенаправление на/bin/systemctl start mariadb.service

Примечание, mariadb по существу является MySQL. Кроме того, введите команду, которую вы используете, а не только выходные данные. Кроме того, я использую CentOS, поэтому мои выходные данные могут отличаться от ваших.

-121--291141-

Если оболочка поддерживает замену процесса (bash, zsh, ksh88, ksh93), можно использовать:

your_command <( cat <<EOF
contents of the
xml file
EOF
)

Вся часть < (...) соединяет вывод команды cat < < EOF с FIFO, который затем передается в качестве аргумента текущей команде.

Но я думаю, что более портативным способом было бы просто создать временный файл с содержимым и удалить его впоследствии.

-121--128477-

«Здесь» документы вполне могут быть прочитаны интерпретатором из интерпретируемого источника и поданы в команду получения ввода (это то, что я бы сделал, во всяком случае, чтобы избежать хлопот одурачиться с временными файлами). В любом случае, какой бы механизм ни использовался, он, как представляется, не документирован и, таким образом, может измениться в любое время. В частности, нет гарантии, что другая оболочка, которую вы получаете, например, /bin/sh будет работать в одном и том же пути.

2
14.06.2018, 16:39
0 ответов

Теги

Похожие вопросы