bash脚本中的variables不能按预期工作

我有这个脚本:

#!/bin/bash VAR="eric.sql" sudo mysqldump -c -u username -p1234 dbname > $VAR 

但是,如果我运行这个脚本,我得到这个错误:

 : Protocol error 3: mysql-export.sh: cannot create eric.sql 

但是如果我不使用这个variables,只是这个:

 #!/bin/bash VAR="eric.sql" sudo mysqldump -c -u username -p1234 dbname > eric.sql 

它运作良好。 我错了什么?

问题是脚本有Windows样式换行符(我用记事本)。 在使用Nano之后,编写脚本就解决了。

感谢您的答案!

sudo可以改变$ PATH变量,取决于你的安全策略。

  -E The -E (preserve environment) option will override the env_reset option in sudoers(5)). It is only available when either the match- ing command has the SETENV tag or the setenv option is set in sudo- ers(5). 

您可以添加该文件的完整路径,或者删除该脚本中的sudo 。 这也应该工作:

  sudo PATH="$PATH" mysqldump -c -u username -p1234 dbname > $VAR