Я новичок в Windows 10 и Bash на Ubuntu и не знаком со сценарием оболочки. Я должен запустить этот скрипт

#!/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

0
  1. Этот скрипт скомпилирован таким образом, что имеет значение, где он выполняется. Убедитесь, что вы запускаете скрипт из папки, в которой находится папка nnforge .
  2. Еще одна возможная проблема - символ новой строки. Попробуйте преобразовать символы новой строки в вашем скрипте в формат unix: sudo apt-get install tofrodos dos2unix <your script full name>
  3. В вашей системе нет команды make для ее установки, а другие, вероятно, необходимые команды выполняют: sudo apt-get install build-essential

PS Но если вы попытаетесь собрать nnforge, боюсь, вы не получите результатов в Windows 10 Bash. CUDA не работает точно. Тем не менее, удачи !

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .