无法在 Windows 10 中使用 Ubuntu 上的 Bash 运行 Shell 脚本

无法在 Windows 10 中使用 Ubuntu 上的 Bash 运行 Shell 脚本

我是 Windows 10 和 Ubuntu 上的 Bash 新手,不熟悉 shell 脚本。我必须运行这个 shell 脚本

#!/bin/bash -x
mkdir -p lib
mkdir -p bin
cd nnforge
make $@
cd plain
make $@
cd ../cuda
make $@
cd ../..
cd examples
for i in ./*
do
    if [ -d "$i" ];then
        cd $i
        make $@
        cd ..
    fi
done
cd ..
cd apps
for i in ./*
do
    if [ -d "$i" ];then
        cd $i
        make $@
        cd ..
    fi
done
cd ..

但是当我用 Bash 运行这个脚本时,会显示以下错误

+ mkdir -p $'lib\r'
mkdir: cannot create directory ‘lib\r’: No such file or directory
+ mkdir -p $'bin\r'
mkdir: cannot create directory ‘bin\r’: No such file or directory
+ cd $'nnforge\r'
: No such file or directorynnforge
+ make $'\r'
./make_all.sh: line 5: make: command not found
+ cd $'plain\r'
: No such file or directoryplain
+ make $'\r'
./make_all.sh: line 7: make: command not found
+ cd $'../cuda\r'
: No such file or directory../cuda
+ make $'\r'
./make_all.sh: line 9: make: command not found
+ cd $'../..\r'
: No such file or directory ../..
+ cd $'examples\r'
: No such file or directory examples
./make_all.sh: line 13: syntax error near unexpected token `$'do\r''
'/make_all.sh: line 13: `do

我该如何修复这个问题并正确运行脚本?

答案1

  1. 此脚本的编译方式与它在何处运行无关。请确保从当前nnforge文件夹所在的文件夹运行该脚本。
  2. 另一个可能的问题 - 换行符。尝试将脚本中的换行符转换为 unix 格式: sudo apt-get install tofrodos dos2unix <your script full name>
  3. 您的系统没有make安装它的命令,其他可能需要的命令执行以下操作: sudo apt-get install build-essential

附言但如果你尝试构建恩福吉恐怕你不会在 Windows 10 Bash 中获得结果。CUDA 后端无法准确工作。尽管如此,祝你好运

相关内容