flex 无法在 sh 脚本中打开文件

flex cannot open file in sh script

我在 Windows 的 cygwin 包上使用 flex 来构建词法分析器。 我用规则
创建了文件 test.lex 当我在命令行中使用此命令时

flex -i test.lex
cc lex.yy.c -lfl
./a

它工作正常。但是当我尝试使用此命令和 运行 文件

制作 sh 文件 (compile_flex.sh) 时
./compile_flex.sh

我收到错误消息

flex: can't open test.lex

我尝试将不同的路径放入我的文件

~/test.lex
/home/user/test.lex
c:\cygwin64\home\user\test.lex

但是不行!我总是收到找不到文件的消息。 当我输入命令

vi test.lex

在我的 .sh 文件中运行良好,文件在 vim

中打开

我解决了我的问题。我使用 windows 编辑器 (notepad++) 创建 .sh 文件。当我在首选项中将行分隔符从 \n\r 更改为 \n 时,它工作正常