Скрипт bash для mkdir - PullRequest
       11

Скрипт bash для mkdir

0 голосов
/ 16 июля 2010

Я пытаюсь создать каталог на основе введенной пользователем переменной, а затем сохранить файлы там.

Я думал, что это будет достаточно просто для меня, но я получаю сообщение об ошибке "Нет такого файла или каталога", когда я пытаюсь сохранить там.Когда я нажимаю «ls», в списке появляется «?»после этого.

Я работаю со скриптом .sh на терминале Mac.

Соответствующий код:

#get user input
echo "enter the collection number"
read COLLECTION
#create the directory
mkdir "$COLLECTION"dir
#calculate a checksum and save it to the above directory
sudo openssl md5 /dev/disk1 > "$COLLECTION"dir/md5.txt

-

Ответы [ 3 ]

3 голосов
/ 16 июля 2010

Проверьте ваш скрипт, чтобы увидеть, есть ли у вас окончания линий в стиле DOS (\r\n). Вы можете безопасно запустить dos2unix в сценарии, если вы не уверены.

?, которое вы видите в имени файла, может фактически быть возвратом каретки в конце строки (поскольку Bash не рассматривает это как пробел).

Так что "$COLLECTION"dir/ не существует; "$COLLECTION"dir\r/ делает.

Изменить: Ви обычно хорошо показывает, что это за специальные символы.

ls | vi -
1 голос
/ 16 июля 2010

Единственная часть этого кода, которая может дать вам ошибку «Нет такого файла или каталога» - это последняя строка./dev/disk1 существует на вашем компьютере?

0 голосов
/ 16 июля 2010

Я использую mkdir -p, когда получаю эту ошибку;)

...