LINUX.ORG.RU

LOR выручи со скриптом


0

1

есть скрипт

#!/bin/bash
cd /rbr/
#n=20
#j=0
for fdata in `ls /home/tide/Mail/tmp/*.xls`
do
   echo "$fdata" && ...... tra-la-la
#   if [ "$n" = "$j" ] exit 0;
#   ((j++));
done

Пытаюсь наложить ограничение на цикл до 20 файлов за один вызов скрипта.

Ошибки в синтаксисе, ЛОР HELP!

if [ "$n" -eq "$j" ] ; then
   exit 0
fi

А вообще, man bash, man test.

geekless ★★
()

ls balbalabla | tail -n

или

ls balbalbal | awk 'нужный тебе авк алгоритм'

MikeDM ★★★★★
()
for x in $(seq 1 20)
do
echo ${x}
done
power
()

MikeDM > tail !!!! понял, спасибо!!!!

mordovorot
() автор топика

j=0; for i in `ls`;do echo $i $((j++)); if [ $j -eq 20 ]; then break; fi; done

fork_you
()

Собственно никто не мешал использовать /home/tide/Mail/tmp/*.xls без ls и кавычек, но раз уж они использованы, то что мешает довести сие до конца в стиле: for i in `ls *.txt | head -20`

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

$ i=0
$ let i=i+1
$ echo $i
1

несколько симпатичнее

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

Не пожалей времени, зайди Advanced Bash-Scripting Guide. Bash - классный инструмент и лучше с ним познакомиться лично.)

Будет сделано! Спасибо ЛОР!

mordovorot
() автор топика

> echo «$fdata» &&
/facepalm
почитайте про pipe и передачу вывода (stdout) на вход другой команде (stdin)
кстати,

for fdata in `ls /home/tide/Mail/tmp/*.xls`

в fdatа при таком раскладе будет всегда один файл.. если кнчно в файлах нет пробелов или еще каких спец символов.
правильнее так:

for fdata in /home/tide/Mail/tmp/*.xls

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