LINUX.ORG.RU

Помогите разобраться c bash скриптом.


0

0

Помогите разобраться.

есть windows скрипт

if "%1" == "" goto End if "%2" == "" goto End if "%3" == "" goto End echo rem Lines of %1>%3 set count=1 for /f "tokens=*" %%i in ('type %1') do (call :SetLineVariable %2 "%%i" %3) goto End :SetLineVariable echo set %1_LINE%count%=%2>>%3 set /a count+=1 goto :EOF :End

может кто подсказать, как переложить видовую конструкцию цикла

for /f "tokens=*" %%i in ('type %1') do (call :SetLineVariable %2 "%%i" %3)

на linux shell (на bash).

Спасибо.

> for /f "tokens=*" %%i in ('type %1') do (call :SetLineVariable %2 "%%i" %3)

Если я правильно понят, то

SetLineVariable {

// тело ф-ции SetLineVariable

}

cat $1 | while read i ; do SetLineVariable $2 $i $3 ; done

Примерно так

dexpl ★★★★★
()

А что эта строчка под вендой делает?

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

> cat $1 | while read i ; do SetLineVariable $2 $i $3 ; done

quick googling дало то, что for /f разбивает на токены по пробелам. А read i разбивает по строкам.

dilmah ★★★★★
()

for i in $(cat $1)
do
	SetLineVariable $2 $i $3
done

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

> for /f разбивает на токены по пробелам. А read i разбивает по строкам.

"tokens=*", заставляет for не разбивать строку.

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