LINUX.ORG.RU

bash script


0

0

В скрипте использую конструкцию

FUNCT(){
echo $1
}

for i -in 1 2 3 ; do
FUNCT $i
done

Если функции не передавать параметр а использовать саму переменную $i, то так работает тоже.

А как правильнее?

★★★★★

> for i -in 1 2 3 ; do

for i in 1 2 3 ; do

конечно

sin_a ★★★★★
() автор топика

man bash

Variables local to the function may be declared with the local builtin command. Ordinarily, variables and their values are shared between the function and its caller.

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

Это я понял и так и написал что работают оба способа.

Мне непонятно какой из них более, так сказать, правильный.

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

Спасибо, уже тоже склонился к этому.

Так, видимо, универсальнее, можно использовать в разных циклах и с разными переменными. Если у этого накладные расходы и больше то наверно пренебрежимо.

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

> Так, видимо, универсальнее, можно использовать в разных циклах и с разными переменными.

Дело не только в этом. Если ты будешь крутить цикл в другой функции с локальным счётчиком, то FUNCT его не увидит.

С другой стороны, можно задаться правилом: для FUNCT счётчик i глобальный, а кто не спрятался - я не виноват. Но в приличном обществе это могут счесть за быдлокодинг :)

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