【问题标题】:My sh codes don't work, help needed我的 sh 代码不起作用,需要帮助
【发布时间】:2017-02-02 10:09:59
【问题描述】:

我正在学习使用 linux,但它没有成功

脚本 1,在我更新 opensuse 之前确实有效:

#!/bin/bash
useradd Test 
passwd Test123
mkhomedir_helper Test

(现在说所有这些命令都不存在)

脚本 2,我只能进入我的 MySql 控制台,他并没有执行所有操作:

#!/bin/bash
mysql -u root -ppassword
sleep 3
CREATE USER 'Test'@'localhost' IDENTIFIED BY 'password'

由于我是 linux 新手,因此非常感谢您的帮助

【问题讨论】:

    标签: linux bash shell sh opensuse


    【解决方案1】:

    运行以下命令:

    echo $PATH
    

    输出应该列出一些路径如下

    /Usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    

    如果没有,则运行以下命令:

    export PATH="/Usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
    

    现在尝试在 script-1 上运行,如果仍然出现同样的错误,那么你缺少一些包,安装包含 mkhomedir_helper 二进制文件的 'pam' 包,所以运行以下命令来安装 pam。

    zypper in pam
    

    脚本 2,要从命令行或作为 shell 脚本运行 mysql 查询,您需要使用 '-e' 选项,将脚本 2 更改如下:

    #!/bin/bash
    mysql -u root -ppassword -e 'CREATE USER "Test"@"localhost" IDENTIFIED BY "password"'
    

    【讨论】:

    • 脚本 1 不是我可以测试 atm 的东西,因为我在非常安全的计算机上的 virtualbox 上使用 opensuse(所以我稍后必须测试它)但是脚本 2 非常有效很好,没有错误,非常感谢!
    • 知道如何添加(到脚本 2)一小行来为我刚刚创建的用户创建一个数据库并赋予它所需的权限吗?
    • 添加以下行(mydb 是数据库名称): mysql -u root -ppassword -e 'GRANT ALL ON mydb.* TO "Test"@"localhost"'
    • 这行不通,但据我了解,这仅提供了测试权限,并没有使数据库正确?因为我也没有制作数据库的代码
    • 如果需要创建数据库则运行:mysql -u root -ppassword -e 'create database mydb'
    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多