没有发现我有以下脚本:
#!/bin/sh
#parameters definition
ROOT_PATH=/var/www/
msql_psw="cc"
mysql_login="bb"
mysql_db_name="aa"
echo START MYSQL DUMP
NOW=$(date +"%Y-%m-%d")
SQLFILE="log-$NOW.sql"
mysqldump --add-drop-table -u "$mysql_login" --password="$mysql_psw" "$mysql_db_name" > "$ROOT_PATH/$SQLFILE"
当它与sh -x
运行,它给出了空行的命令没有发现错误,甚至非空行唐“T正常工作:
sh -x export_db.sh
+ $'\r'
: command not found2:
+ ROOT_PATH=$'/var/www/\r'
+ msql_psw=$'cc\r'
+ mysql_login=$'bb\r'
+ mysql_db_name=$'aa\r'
+ $'\r'
: command not found8:
+ echo START MYSQL $'DUMP\r'
START MYSQL DUMP
+ $'\r'
: command not found10:
++ date +%Y-%m-%d
+ NOW=$'2014-10-02\r'
+ SQLFILE=$'log-2014-10-02\r.sql\r'
+ mysqldump --add-drop-table -u $'bb\r' --password= $'aa\r'
: No such file or directory/www/
这里唯一特别错的是缺少引号 - 应该是'-u“$ mysql_login”--password =“$ mysql_psw”'等等,用'sh -x your.script'运行你的脚本看看它说的是实际运行 - 这会显示它是否真的不会替换命令中的变量。 – 2014-09-26 21:55:34
噢 - 实际上,'$ ROOT_PATH = foo'是非常错误的;需要'ROOT_PATH = foo',而不需要前导'$'。 – 2014-09-26 21:57:46
$ root_path是一个错字,我没有在脚本中使用$。我会尝试并让你知道。谢谢 – LEM01 2014-09-27 21:49:05