Здравствуйте, у меня возникла проблема.
Уже нет сил долбиться с ней поэтому пришёл за советом. Только сильно не бейте за такие вопросы, но сил уже правда нет.
У меня 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 то уже ничего работать не будет.
Я посмотрел скрипты которые уже есть в установленном кугвине. В блокноте там всё в одну строку, но вместо переноса строки квадратик, мол хз какой символ.
Что с переносом? В чем проблема? С кодировкой?
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark

Это тебе прямиком сюда:
http://gazette.linux.ru.net/rus/articles/abs-guide/index.html
Просто в виндовсе и в линуксе разные символы завершения строки. Что получается, когда линуксовый текстовый документ открываешь в виндовсе, ты сейчас и наблюдаешь ;).
Первая твоя программа работает нормально. Во второй перед then нужен ; или \n.
И выбери какой-нибудь текстовый редактор посолиднее блокнота. Который решит тебе проблему с переносами строк и многим другим.
while ! [ -z $1 ]; do echo $1 shift doneне пользуйся блокнотом. если хочеться стандартными виндовыми средствами, то используй wordpad. у него нету проблем с переводом строк.
Всем спасибо.