LINUX.ORG.RU

ABS Book, где об этом пишется


0

0

Есть список значений, и над ним выполняется действие. Понимаю как это сделать, если значения в файле:

#!/bin/bash
cat filelist.txt | while read w; do ls -lh "$w"; done

Но мне нужно перечислить их в теле скрипта. Пока получается только вот так:

#!/bin/bash

echo "
SCAN130208-20-47-24.TIFF
SCAN130208-20-48-19.TIFF
" | while read w; do ls -lh "$w"; done

Но я получаю ругалки в консоли, ибо ессно это коряво:

$ tstit
ls: cannot access : No such file or directory
-rwxrwxrwx 1 root root 6,4M 2008-02-15 19:18 SCAN130208-20-47-24.TIFF
-rwxrwxrwx 1 root root 9,4K 2008-02-16 12:31 SCAN130208-20-48-19.TIFF
ls: cannot access : No such file or directory

★★★

>ABS Book, где об этом пишется

Именно там и пишется. :Е Как оно называется не скажу, иначе ты так никогда и не продвинешься дальше названия этой замечательной книги.

anonymous
()
Ответ на: комментарий от anonymous

>anonymous
>менно там и пишется. :Е Как оно называется не скажу, иначе ты так никогда и не продвинешься дальше названия этой замечательной книги.

Разумеется я могу сделать так:

#!/bin/sh

for i in \
SCAN160208-14-00-36.TIFF \
SCAN160208-14-01-10.TIFF \
SCAN160208-14-02-09.TIFF
do echo $i; done

Но мне неудобно каждый раз писать слеш. Есть какой то другой механизм?

baaba ★★★
() автор топика
Ответ на: комментарий от baaba

Есть. Помимо ABS есть ещё man bash. Рекомендую раздел Redirection.

Jini ★★
()
Ответ на: удаленный комментарий

ну или

while read word do echo $word done <<EOF SCAN130208-20-47-24.TIFF SCAN130208-20-48-19.TIFF EOF

polachok
()
Ответ на: удаленный комментарий

ну или

while read word
do
echo $word
done <<EOF
SCAN130208-20-47-24.TIFF
SCAN130208-20-48-19.TIFF
EOF

polachok
()
Ответ на: комментарий от Uncle_Theodore

> А stderr тут при чем? Ему, вроде heredoc нужен, если я правильно вопрос понял...

+1

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.