mysql - 需要 "build"一个 mysql 命令并在 shell 脚本中执行它

标签 mysql linux bash shell command

我是编写 shell 脚本的新手。

我正在尝试使用 shell 脚本创建数据库。这是脚本:

#!/bin/bash
#create a new db
a="mysql -uuser -ppassword -e'create database $1;'"
exec $a

命令 exec mysql -uuser -ppassword -e'create database databaseName;' 在 shell 中运行,但是当我 sh 脚本时,我得到了 mysql 帮助打开...

最佳答案

我认为问题出在引号中,简单的引号阻止了变量扩展。 您可以在脚本中简单地这样做:

    #!/bin/bash
    #create a new db

    mysql -u user -p password -e "create database $1;"

或者您可以尝试将所有 mysql 命令放在一个文件中,比方说“dbname.sql”。 并这样做:

    #!/bin/bash
    #create a new db

    mysql -u user -p password "$1" < "$1.sql"

关于mysql - 需要 "build"一个 mysql 命令并在 shell 脚本中执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004284/

相关文章:

linux - 7 比特定日期更新的 zip 归档文件

linux - 如何使用字符串分隔符将 stderr 重定向到 stdout

linux - Putty 作为 cmd 和 sh 之间的接口(interface)

bash - 如何从终端将文件名中的字符附加到文件每一行的末尾?

linux - 验证 BASH 脚本时出现问题

mysql - phpmyadmin 不会将 MySQL TINYINT(1) 更改为 BOOLEAN 数据类型

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

PHP Mysql 搜索页面

php - 如何从 Apache PHP 脚本(Ubuntu 14.04)向守护进程发送信号 SIGUSR1

javascript - 如何使用参数化输入将 NULL 值从 nodeJS/javascript 插入到 MySQL?