我是 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
- 此脚本的编译方式与它在何处运行无关。请确保从当前
nnforge
文件夹所在的文件夹运行该脚本。 - 另一个可能的问题 - 换行符。尝试将脚本中的换行符转换为 unix 格式:
sudo apt-get install tofrodos dos2unix <your script full name>
- 您的系统没有
make
安装它的命令,其他可能需要的命令执行以下操作:sudo apt-get install build-essential
附言但如果你尝试构建恩福吉恐怕你不会在 Windows 10 Bash 中获得结果。CUDA 后端无法准确工作。尽管如此,祝你好运!