1

как хранить несколько файлов в переменной 1 одновременно.

for f in *.biz
do
file="$(ls *.biz)"
echo " $file"
done

но вот вывод

 minimum.biz
 maximum.biz
 milan.biz
 ritz.biz <-------------1
 minimum.biz
 maximum.biz
 milan.biz
 ritz.biz <-------------2
 minimum.biz
 maximum.biz
 milan.biz
 ritz.biz  <------------3
 minimum.biz
 maximum.biz
 milan.biz
 ritz.biz  <------------4

Кроме того, вы можете видеть, что программа хранит их все сразу, и без всякой причины программа повторяется еще 3 раза.

есть идеи??? заранее спасибо

1 ответ1

0

У вас есть четыре файла .biz . Поэтому for f in *.biz; do ... done создаст цикл, который повторяется четыре раза. $f быть присвоены значения minimum.biz в 1 - й итерации, maximum.biz в 2 - й итерации, milan.biz в 3 - й итерации и ritz.biz в 4 - й итерации соответственно.

Внутри петли, т.е.

file="$(ls *.biz)"
echo " $file"

$ file присваивается четыре имени файла, а оператор echo печатает все четыре имени файла .biz .

Пожалуйста, попробуйте это, и вы поймете больше:

for f in *.biz
do
echo "-- Inside loop $f --"
file="$(ls *.biz)"
echo " $file"
done

Обновление: из ваших комментариев я предполагаю, что вы просто хотите перебирать файлы, и приведенный ниже модифицированный код должен работать:

for f in *.biz
do
echo " $f"
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .