Windows Ubuntu 终端脚本不起作用

Windows Ubuntu 终端脚本不起作用

对于我的 Bash 编程作业,我必须创建管道来处理文件以查找一些模式。我目前使用Windows 10 Ubuntu 应用程序终端。我写了以下内容:

echo "Processing Log Files..."
# error is the word I'm looking for in the files
grep error -A 1 logfile1.txt >> filter.txt
grep error -A 1 logfile2.txt >> filter.txt
echo "Done."

但是当我运行带有标题的文件时/bin/sh #!/bin/sh 复制代码我收到此错误:

Processing Log Files...
: Directory nonexistentoder.sh: cannot create filter.txt
: Directory nonexistentoder.sh: cannot create filter.txt
Done.

当我运行带有标题的代码时/bin/bash #!/bin/bash我收到此错误:

Processing Log Files...
: No such file or directoryer.txt
: No such file or directoryer.txt
Done.

我真的不知道为什么会发生这种情况,我将文件的权限更改为以下内容:

drwxrwxrwx 0 root root   512 Mar 20 23:25 .
drwxrwxrwx 0 root root   512 Mar 20 13:59 ..
-rwxrwxrwx 1 root root   316 Mar 20 23:24 decoder.sh
-rwxrwxrwx 1 root root 52247 Mar 19 15:59 logfile1.txt
-rwxrwxrwx 1 root root 33142 Mar 19 15:59 logfile2.txt
-rwxrwxrwx 1 root root   239 Mar 19 15:39 mapping-sorted.txt

答案1

感谢@steeldriver,我发现我编写的脚本隐藏了windows字符,因为我使用的是windows文本编辑器。我运行了以下行,文件有标题/bin/bash #!/bin/bash

dos2unix scriptName.sh

脚本随后起作用了 :D

相关内容