2016-12-27 179 views
2


我试过搜索我无法得到我的问题的答案,也许是因为我不知道如何正确地问它,所以我提前道歉。
我想执行的bash脚本如命令链:Linux - 使用CLI程序执行命令

run mysql > type help > exit 

[email protected]:# mysql 
mysql> help 
mysql> exit 
[email protected]:# 

我怎么能在bash脚本实现这一目标?

我试过操作数||,& &,;所有这些例如:

#!/bin/bash 
mysql || help || exit 

没有工作。它相互执行命令。

+0

你的意思是你想按顺序运行一些MySQL命令吗? –

回答

6

您可以使用定界符来传递一些文本,该命令将读取,就好像它是一个文件:

mysql <<EOF 
help 
exit 
EOF 

另外,在bash,那么你可以使用一个herestring,达到对管道类似的效果不会造成任何额外的子shell命令在标准输入:

mysql <<< $'help\nexit' 
# or on other shells 
printf 'help\nexit\n' | mysql 

注意,exit是不是真的有必要,因为当它运行的输入反正mysql将退出。

3

尝试以下操作:

mysql << EOF 
help 
exit 
EOF 

这将启动mysql命令然后通过管道将帮助和退出命令到MySQL的标准输入是有效的一样直接键入他们

2

这听起来像你”重试是按顺序运行一些MySQL命令。

其他人提到的heredoc方法是在Shell脚本中执行的方法。

也许你只是想从命令行运行相同的MySQL命令。如果是这样,那么MySQL命令行工具会将包含诸如help和其他SQL命令等命令的文件作为其默认参数。

  1. 创建一个文件(说myfile.sql)和编辑内容:

    help 
    select * from mytable 
    
  2. 保存文件

  3. 通行证文件到MySQL:

    mysql myfile.sql 
    

有没有需要拨打exit