#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql
echo "The program has completed"
我正在尝试从 shell 脚本调用一个 sql 文件,我正在以 方式运行该脚本bash run.sh
,但它说没有这样的 directoryfirst.sql,但如果我以 方式单独运行该命令mysql -uroot -pwelcome1 < /home/sai/first.sql
,它就可以正常工作,还有其他的编写方式吗?
答案1
这可能是行尾问题。如果你run.sh
在 vim 中打开并运行set fileformat=unix
并且+
出现(显示文件现在已被修改)这意味着该文件有 DOS 行尾,Bash 无法正确解释。保存并退出,脚本应该可以正常工作。
将来,如果发生明显奇怪的事情,请使用类似od -ctx1 run.sh
查看文件中到底有什么内容。