沒有發現我有以下腳本:
#!/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