我正在尝试找到一种方法来使用程序的输入文件,这样我也可以使用标准输入。
例如,假设我有一个创建表的 SQL 脚本。我这样调用它:
mysql -p database < script.sql
这很棒,但是当脚本完成时它会退出 mysql。相反,我想手动运行其他查询,而无需退出 mysql。
我知道tee
可以将输出分叉到终端(stdout)和文件,是否有可用于输入的反向函数,或者至少有一种可应用于大多数 Linux/Unix 命令的方法?
答案1
cat script.sql - | mysql -p database
答案2
我喜欢@Stephane 对一般情况的回答,但这里有一些更适合您的具体示例的答案。
启动MySQL交互模式并使用source
命令运行SQL脚本。
$ mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 947
Server version: 5.1.73-1 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> source asdf.sql
+------+
| test |
+------+
| test |
+------+
1 row in set (0.00 sec)
mysql> select 'cool';
+------+
| cool |
+------+
| cool |
+------+
1 row in set (0.00 sec)
mysql>