Linux - 使用CLI程序执行命令

时间:2016-12-27 12:04:32

标签: linux bash shell


我试着搜索我无法回答我的问题,也许是因为我不确定如何正确地问它,所以我提前道歉。 我试图用bash脚本执行命令链,例如:

run mysql > type help > exit

root@ubuntu:# mysql
mysql> help
mysql> exit
root@ubuntu:#

如何在bash脚本中实现此目的?

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

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

没有工作。它会在彼此之后执行命令。

3 个答案:

答案 0 :(得分:6)

您可以使用heredoc传递一些文本,该命令会将其读取为文件:

mysql <<EOF
help
exit
EOF

或者,在bash中你可以使用一个herestring,它可以通过标准输入实现与管道命令类似的效果,而不会创建任何额外的子shell:

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

请注意,exit并不是必需的,因为mysql无论如何都会在输入用完时退出。

答案 1 :(得分:3)

尝试以下方法:

mysql << EOF
help
exit
EOF

这将启动mysql命令,然后将help和exit命令传递给mysql的stdin,这与直接键入它们实际上相同

答案 2 :(得分:2)

听起来你要做的就是按顺序运行一些MySQL命令。

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

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

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

    help
    select * from mytable
    
  2. 保存文件

  3. 将文件传递给mysql:

    mysql myfile.sql
    
  4. 无需拨打exit