Я написал bash, чтобы отобразить имя всех файлов данной директории, но когда я запускаю это, он разбивает имя файла с пробелами.Обработка пространства как символ новой строки в bash
if [ $# -eq 0 ]
then
echo "give a source directory in the command line argument in order to rename the jpg file"
exit 1
fi
if [ ! -d "$1" ]; then
exit 2
fi
if [ -d "$1" ]
then
for i in $(ls "$1")
do
echo "$i"
done
fi
Я получаю следующую вещь, когда я бегу Баш скрипт
21151991jatinkhurana_image
(co
py).jpg
24041991jatinkhurana_im
age.jpg
35041991jatinkhurana_image
.jpg
Дело в том, что я пытался до сих пор сбрасывает переменную IFS как IFS = $ (эхо -en «\ т \ п \ 0"), но не нашел никаких изменений ....
Если кто-нибудь знает, пожалуйста, помогите мне .....
Я не отправляю это как ответ поскольку я уверен, что это дублирующий вопрос. Пробелы в имени ваших файлов рассматриваются как разделитель элементов в 'for i в $ (ls" $ 1 ")', просто кладут кавычки 'for i в '$ (ls" $ 1 ")" '. Примечание: бесполезное использование 'ls', use:' for i in "$ 1"/* ' – syme