Чтобы прояснить комментарий @JulienPalard выше, вы должны быть в состоянии достичь своей цели с помощью следующих команд.
(Я использую два разных процесса оболочки, тогда как он использует один. Для моего описания попробуйте сделать обе оболочки видимыми одновременно, чтобы вы могли читать вывод в одной оболочке и записывать ввод в другой. Если вы знаете, что делаете, вы может перевести процесс mysql в фоновый режим и, таким образом, использовать только одну оболочку.)
Оболочка 1: вывод
$ mkfifo mypipe # create a named pipe
$ chmod 666 mypipe # Give all users read-write access to the pipe
$ tail -f mypipe | mysql -umyName -p mySchema # pipe mypipe into mysql
Последняя строка выше сообщает именованному каналу, что он должен постоянно передавать данные в процесс mysql. Всякий раз, когда вы выводите что-то в mypipe, это будет отправлено процессу mysql в качестве стандартного ввода.
После этого вы не получите нового приглашения, потому что ваша команда tail
будет выполняться до тех пор, пока вы не завершите ее процесс.
Держите эту оболочку открытой и ее процесс tail
работающим, пока вы используете другой процесс оболочки (Shell 2: ввод) для отправки команд в mysql
.
Оболочка 2: ввод
$ echo 'show tables;' > mypipe # this will print output onto your *other* shell (Shell 1: output)
$ echo 'insert into mytable (1,2,3);' > mypipe # this performs an insertion
person
JellicleCat
schedule
13.05.2015
sleep()
в mysql - person ajreal   schedule 21.01.2011