LinuxForum.Fans
Тема

Вопрос по bash

Автор: hitomy 3 сообщений 3418 просмотров
#201244

Подскажите подалуйста почему когда я набираю просто в терминале команду:

text
ls -1 /home/vlad/Загрузки

выходит вот это:
[console]vlad@vlad-desktop:~$ ls -1 /home/vlad/Загрузки/
5 Ethernet.chm
Adaaran_HF___OV_(wedding_ceremony_summer_2011).doc
Adaaran_MP___WV_(wedding_ceremony_summer_2011).doc
alfa-icons1.zip
Deftones - Diamond Eyes.log
ethernet.rar
jpg.png
price.xls
programmingforunix.djvu
rhythmdb.zip
rochkind_unixprog2005.rar
Severnaya_stolitsa_BYeL_Ye (1).xls
Severnaya_stolitsa_BYeL_Ye.xls
text.doc
tux_grande.png
unixsisadmin.djvu
График_изменения.xls
Мониторинг отказов 23.10_Прокопович.xls
Снимок.png
vlad@vlad-desktop:~$[/console]
В общем то всё правильно, но когда я прописываю команду в скрипт

text
#!/bin/bash
down=/home/vlad/Загрузки 
pic=/home/vlad/Картинки
cd $down

list=`ls -1 ${down}` echo $list

получается вот что:
[console]vlad@vlad-desktop:~/Рабочий стол/Admin_Linux/script_download$ ./download_2
5 Ethernet.chm Adaaran_HF___OV_(wedding_ceremony_summer_2011).doc Adaaran_MP___WV_(wedding_ceremony_summer_2011).doc alfa-icons1.zip Deftones - Diamond Eyes.log ethernet.rar jpg.png price.xls programmingforunix.djvu rhythmdb.zip rochkind_unixprog2005.rar Severnaya_stolitsa_BYeL_Ye (1).xls Severnaya_stolitsa_BYeL_Ye.xls text.doc tux_grande.png unixsisadmin.djvu График_изменения.xls Мониторинг отказов 23.10_Прокопович.xls Снимок.png
vlad@vlad-desktop:~/Рабочий стол/Admin_Linux/script_download$ [/console]
То есть не в столбик. Почему так?

#201246

решение нашлось- поставил переменную

text
$list

в двойные кавычки

text
echo "$list"

и получилось. smile

#201256

На вопрос "почему?", man bash пишет:

$(команда) или `команда`

" Командный интерпретатор bash делает эту подстановку путем выполнения команды и замены конструкции подстановки содержимым стандартного выходного потока команды, из которого удалены завершающие переводы строк.
Встроенные переводы строк не удаляются, но они могут быть удалены при разбиении на слова. "

" Если подстановка задана в двойных кавычках, разбиение на слова и подстановка имен файлов в результатах не выполняется. "

Сравниваем результаты:
[console]
echo $(ls -1 $down)
echo "$(ls -1 $down)"
[/console]

Войдите или зарегистрируйтесь, чтобы ответить.