Невозможно «cd» или изменить каталог с помощью сценария bash в WSL [дубликат]

Я установил Ubuntu bash на свой компьютер с Windows, поэтому я могу тестировать сценарии Linux вне работы. Я создал очень простой скрипт с базовым "hello world" и каталогом изменений (cd), но при выполнении он отображает hello world. Это ошибка в строке cd to directory.

Вот ошибка:

$ ./test.sh
hello world
zipping away
./test.sh: line 6: cd: $'/home/fjaffer/temp\r\r': No such file or directory
./test.sh: line 7: $'\r': command not found
ffr@DP-PC:~$

Мой сценарий test.sh находится ниже:

#!/bin/bash
echo "hello world"
echo "zipping away"
dir=/home/fjaffer/temp
cd $dir

Посоветуйте, пожалуйста? Спасибо.

12
задан 3 September 2018 в 06:43

2 ответа

Это - потому что Вы создали свой сценарий в машине окон, некоторых \r (возврат каретки) был добавлен в конце каждой строки.

Удалите их как это:

tr -d '\r' < test.sh > new-test.sh

Также заключите значение переменной в кавычки:

cd "$dir"

затем запустите свой скрипт:

./new-test.sh

Как подсказка также лучше использовать:

 cd ... || exit

в случае любого отказа.


Настройте своего редактора, таким образом, это использует формат Linux для того, чтобы сохранить файлы (Если это способно к), или используйте редактора в ударе как nano:

enter image description here

17
ответ дан 23 November 2019 в 03:31

Другая опция к использованию dos2unix управляйте для преобразования файла в формат типа Unix.

Использование:

dos2unix your_file
11
ответ дан 23 November 2019 в 03:31

Другие вопросы по тегам:

Похожие вопросы: