1

我在 ubuntu 中创建了一个 .sh 文件来创建和执行以下命令,我的 .sh 文件和以下 mysql 脚本位于同一文件夹中。我手动创建了测试数据库,并单独创建并运行了脚本。

papol.sh 的内容

mysql -h localhost -u root -padmin < apple.sql
mysql -h localhost -u root -padmin < getdb.sql

当我执行命令时 bash -x papol.sh,它会抛出以下错误

+ mysql -h localhost -u root -padmin
: No such file or directoryapple.sql
+ mysql -h localhost -u root -padmin
: No such file or directorygetdb.sql

我找不到原因。如果有人可以提供帮助,我将不胜感激

4

1 回答 1

2

更新

在我的下一个会话中,我意识到终端无法识别 mysql。我意识到我很愚蠢,只是总是做错事。不要使用别名来解析二进制文件。

例如,不要使用别名 mysql="/Applications/MAMP/Library/bin/mysql"

反而

导出 PATH=$PATH:/Applications/MAMP/Library/bin/

这将允许您通过 bash 适当地使用二进制文件,并且您还可以从终端访问所有 mysql 二进制文件,包括 mysqladmin 等。:) 快乐的脚本!

具有适当环境变量的示例脚本:

#!/bin/bash

echo ""
echo Reloading Database 
echo ""
echo Using
echo PROJECT_BUILD_HOME: $PROJECT_BUILD_HOME
echo MYSQL: $(which mysql)
echo PHP: $(which php)
echo ""
echo ""

mysqladmin -u root -pmypass drop projectbuild
mysqladmin -u root -pmypass create projectbuild
gunzip < $PROJECT_BUILD_HOME/pack/projectbuild.sql.gz | mysql -u root -pmypass projectbuild

下面的旧答案

我在我的用户 .profile 中将 mysql 设置为别名 mysql="/path/to/mysql"。

反而,

我用 export mysql=/path/to/mysql

在我的 bash 脚本中,我使用了 $mysql。

例子

cat /path/to/my/file | $mysql -h localhost -u root -padmin
于 2013-09-25T00:35:24.060 回答