a.sh
cat in|while read s
do call "$s"
done
Это нужно изменить, чтобы он работал только для строк arg+n. например: a.sh 5
cat in|while read s
n=10
for lines arg0 through arg0+n
do call "$s"
done
a.sh
cat in|while read s
do call "$s"
done
Это нужно изменить, чтобы он работал только для строк arg+n. например: a.sh 5
cat in|while read s
n=10
for lines arg0 through arg0+n
do call "$s"
done
lines=10
current=0
while read line; do
current=current+1
if [ "$current" -gt "$lines" ] then exit 0; fi
if [ "$current" -gt "$1" ] then call "$line"; fi
done < in
Будет быстрее и чище отфильтровать входные данные до соответствующих строк перед передачей их в цикл чтения:
n=10
start=$1
end=$((start+n))
cat in | sed "${start},${end}!d" | while read s; do
call "$s"
done
Примечание: при печати строк от $ 1 до $ 1+n фактически будет напечатано n+1 строк (например, при печати строк с 5 по 15 на самом деле 11 строк). Если вы хотите напечатать n строк, начинающихся с $ 1, используйте end=$((start+n-1))
.