На этот вопрос уже есть ответ здесь:
Как мне использовать «cd» для доступа к каталогу с пробелом, например «XML 5.1 Final Fields» в сценарии bash
Я пробовал cd XML 5.1 Final Fields
, но он выдает ошибку Нет такого файла или каталога
.
Это сценарий:
#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x 9 george george 4096 Feb 18 12:44 XML 5.1 Final Fields
это ошибка, которую я получаю при запуске сценария
line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
Ваша переменная xmlfolder
является неправильным. Это должно быть
xmlfolder=XML\ 5.1\ Final\ Fields
или = "поля финала XML 5.1"
Вам не нужно /
в пути - поскольку это - всего одна папка. Вам также не нужно ""
если Вы также используете \
. Выберите тот.
начиная с Вашего редактирования с ls
команда, я вижу, что может быть пространство в конце Вашего имени папки. Я предложил бы, чтобы Вы удалили пространство, или путем переименования в наутилусе или с mv
команда.
Если Вы хотите сохранить пространство, Ваше имя переменной должно быть этим:
xmlfolder=XML\ 5.1\ Final\ Fields\
или
xmlfolder="XML 5.1 Final Fields "
Обратите внимание на это при использовании опции First с \
символ, также необходимо обратиться к переменной с ""
, т.е. "$xmlfolder"
.
Ошибка предлагает это cd
недовольно путем.
Попытайтесь измениться cd
команда от этого
cd $xmlpath
кому:
cd "$xmlpath"
Чтобы быть совершенно честными, Вы не должны должны быть cd
в сценарии удара. Просто обратитесь ко всему с полным путем.
Таким образом, Ваш xmlfolder=
строка должна быть xmlfolder=XML\ 5.1\ Final\ Fields
, и Ваш cd
строка должна быть cd "xmlpath"
.
Мои местоимения - Он / Его