我的 sh 代码不起作用,需要帮助

Posted

技术标签:

【中文标题】我的 sh 代码不起作用,需要帮助【英文标题】:My sh codes don't work, help needed 【发布时间】: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 新手,因此非常感谢您的帮助

【问题讨论】:

【参考方案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'

以上是关于我的 sh 代码不起作用,需要帮助的主要内容,如果未能解决你的问题,请参考以下文章

导出在我的 shell 脚本中不起作用

MPMoviePlayercontroller 在 iphone SDK 4 中不起作用? - 需要帮助

需要帮助 为啥 TailwindCSS 不起作用?如果通过 axios 打开模态

云代码后保存方法不起作用

数组在 Vue 中不起作用

CSS“全部”转换不起作用