2017-02-08 3 views
1

У меня есть этот код:Чтения полного имени файла, используя сценарий оболочки

for dir in "/Users/vskumar/Dropbox/alexa"/* 
do 
    echo $dir 
    value=`cat $dir` 
    echo value 
done 

и первый файл в каталоге имеет имя, как показано ниже:

amazon_alexa_february_7__2017_at_0504pm (2).txt 

Выхода я получаю:

/Users/vskumar/Dropbox/alexa/amazon_alexa_february_7__2017_at_0504pm (2).txt 
cat: /Users/vskumar/Dropbox/alexa/amazon_alexa_february_7__2017_at_0504pm: No such file or directory 
cat: (2).txt: No such file or directory 

В основном, он обрабатывает все после пробела как другое имя файла. Как это исправить?

ответ

2

Вы должны использовать двойные кавычки вокруг переменных, чтобы предотвратить разбиение слов и подстановка:

for dir in "/Users/vskumar/Dropbox/alexa"/* 
do 
    echo "$dir" 
    value=`cat "$dir"` 
    echo value 
done 
Смежные вопросы