在工作中,我必须使用一个自定义脚本将 SQL 脚本应用于 mysql 数据库服务器,并且不能随意修改。自定义脚本的命令行选项非常有限。例如,它不允许指定默认数据库。即我必须use database
切换到正确的目录。
现在我想将create table
脚本应用到数据库。但是,我需要use database
在第一行声明create table
脚本才能成功运行。
如果以下工作,我不需要在这里发布问题:
echo 'use database' | cat create_tables.sql | work_send_command_to_db.sh
我真的希望能够在不修改本地文件的情况下实现目标。这是因为在上面的示例命令中,create_tables.sql
已经签入了 git。我不想在每次应用create_tables.sql
脚本后都重置存储库。
您希望将两个命令的输出作为一个组传送到最终脚本,而不是
echo
to的输出cat
。{ ...; }
因此,使用or对这些命令进行分组(...)
:或者: