nixp.ru v3.0

22 октября 2017,
воскресенье,
22:17:53 MSK

DevOps с компанией «Флант»
i453 написал 2 октября 2006 года в 23:37 (564 просмотра) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 1 комментарий на сайте.

Здравствуйте, у меня возникла проблема.

Уже нет сил долбиться с ней поэтому пришёл за советом. Только сильно не бейте за такие вопросы, но сил уже правда нет.

У меня cygwin — эмулятор bashell’a в винде. Я никак не могу составлять скрипты с использованием конструкций типа if for while case…

например пишу в блокноте

—————————--

while [ $1 ] ; do

echo $1;

shift;

done

—————————--

Ответ

—————————--

Администратор@user ~

$ f a b c

: command not foundine 1:

a

: command not foundine 2:

: command not foundine 3:

: command not foundine 1:

b

: command not foundine 2:

: command not foundine 3:

: command not foundine 1:

c

: command not foundine 2:

: command not foundine 3:

—————————--

или

—————————--

while [ $1 ] ; do

if true then

echo $1;

fi

shift;

done

—————————--

Администратор@user ~

$ f a b c

/usr/local/bin/f: line 6: syntax error near unexpected token `done'

/usr/local/bin/f: line 6: `done'

—————————--

но

while [ $1 ] ; do echo $1; shift; done

дает что надо

Администратор@user ~

$ f a b c

a

b

c

——————————-

Но если в строку и ещё внутрь толкнуть какой-нибудь if то уже ничего работать не будет.

Я посмотрел скрипты которые уже есть в установленном кугвине. В блокноте там всё в одну строку, но вместо переноса строки квадратик, мол хз какой символ.

Что с переносом? В чем проблема? С кодировкой?

fly4life
i453
Здравствуйте, у меня возникла проблема.

Уже нет сил долбиться с ней поэтому пришёл за советом. Только сильно не бейте за такие вопросы, но сил уже правда нет.

У меня cygwin — эмулятор bashell’a в винде. Я никак не могу составлять скрипты с использованием конструкций типа if for while case…

например пишу в блокноте

—————————--

while [ $1 ] ; do

echo $1;

shift;

done

—————————--

Ответ

—————————--

Администратор@user ~

$ f a b c

: command not foundine 1:

a

: command not foundine 2:

: command not foundine 3:

: command not foundine 1:

b

: command not foundine 2:

: command not foundine 3:

: command not foundine 1:

c

: command not foundine 2:

: command not foundine 3:

—————————--

или

—————————--

while [ $1 ] ; do

     if true then

           echo $1;

     fi

     shift;

done

—————————--

Администратор@user ~

$ f a b c

/usr/local/bin/f: line 6: syntax error near unexpected token `done'

/usr/local/bin/f: line 6: `done'

—————————--

но

while [ $1 ] ; do echo $1; shift; done

дает что надо

Администратор@user ~

$ f a b c

a

b

c

——————————-

Но если в строку и ещё внутрь толкнуть какой-нибудь if то уже ничего работать не будет.

Это тебе прямиком сюда:

http://gazette.linux.ru.net/rus/articles/abs-guide/index.html

i453
Я посмотрел скрипты которые уже есть в установленном кугвине. В блокноте там всё в одну строку, но вместо переноса строки квадратик, мол хз какой символ.

Что с переносом? В чем проблема? С кодировкой?

Просто в виндовсе и в линуксе разные символы завершения строки. Что получается, когда линуксовый текстовый документ открываешь в виндовсе, ты сейчас и наблюдаешь ;).

Feuerbach

Первая твоя программа работает нормально. Во второй перед then нужен ; или \n.

И выбери какой-нибудь текстовый редактор посолиднее блокнота. Который решит тебе проблему с переносами строк и многим другим.

rgo
i453
—————————--

while [ $1 ] ; do

echo $1;

shift;

done

—————————--



while ! [ -z $1 ]; do
    echo $1
    shift
done


i453
Я посмотрел скрипты которые уже есть в установленном кугвине. В блокноте там всё в одну строку, но вместо переноса строки квадратик, мол хз какой символ.

Что с переносом? В чем проблема? С кодировкой?

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

i453

Всем спасибо.