А я понимаю, о чем вы думали (я думаю). Вы пытались
echo hello | > file
, и ничего не случилось с file, поэтому вы подумали, может быть, мне нужно вывести вывод моей команды в stdin путем перенаправления:
echo hello >&0
Но поворот stdout в stdin - это именно то, что делает труба. Он принимает stdout и передает его команде справа от stdin. Если вы перенаправляете stdout, ничто не пройдет через трубу:
$ echo hello >&0 | cat > file
hello
$ cat file
$
(ничего там)
Но hello вышел в терминал, который читается с stdin, как обычно :
$ cat /dev/fd/0
hi
hi
I am talking to myself!
I am talking to myself!
и т. д. ...
Если мы не перенаправляем ...
$ echo hello | cat > file
$ cat file
hello
stdout of echo hello прошел (вместо терминала) и стал stdin cat.
Итак, труба делает то, что вы хотели сделать (поверните stdout в stdin и подключите его к правой команде), и вы
Что касается того, почему пустая команда с перенаправлением не делает то, что вы хотите, см. ответ muru.
Если вы используете Ubuntu 16.04, как указано в теге вопроса, вместо этого вы должны использовать systemctl. Чтобы включить службу при запуске:
systemctl enable mssql
Чтобы отключить службу при запуске:
systemctl disable mssql
Возможно, имя службы будет mssql-server, поэтому сначала попробуйте с помощью mysql, затем с mysqld
Если вы используете Ubuntu 16.04, как указано в теге вопроса, вместо этого вы должны использовать systemctl. Чтобы включить службу при запуске:
systemctl enable mssql
Чтобы отключить службу при запуске:
systemctl disable mssql
Возможно, имя службы будет mssql-server, поэтому сначала попробуйте с помощью mysql, затем с mysqld
Если вы используете Ubuntu 16.04, как указано в теге вопроса, вместо этого вы должны использовать systemctl. Чтобы включить службу при запуске:
systemctl enable mssql
Чтобы отключить службу при запуске:
systemctl disable mssql
Возможно, имя службы будет mssql-server, поэтому сначала попробуйте с помощью mysql, затем с mysqld