<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7985992584888418509</id><updated>2015-09-17T08:51:30.767+03:00</updated><category term="С++"/><category term="MSVC"/><category term="bash"/><category term=".NET"/><category term="gdb"/><category term="python"/><category term="stl"/><title type='text'>/spk/dev</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sergiy Krupyna</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-1635472806013718603</id><published>2012-08-30T00:29:00.001+03:00</published><updated>2014-09-29T22:48:02.514+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Python vs C++: overridden methods from the base class constructor </title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;pre class=&quot;brush: python;&quot;&gt;class A(object):&lt;br /&gt;&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.data = self.foo()&lt;br /&gt;&lt;br /&gt;    def foo(self):&lt;br /&gt;        return &#39;A&#39;&lt;br /&gt;&lt;br /&gt;class B(A):&lt;br /&gt;&lt;br /&gt;    def __init__(self):&lt;br /&gt;        super(B, self).__init__()&lt;br /&gt;&lt;br /&gt;    def foo(self):&lt;br /&gt;        return &#39;B&#39;&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; print B().data&lt;br /&gt;B&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/1635472806013718603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2012/08/python-vs-c-overridden-methods-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/1635472806013718603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/1635472806013718603'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2012/08/python-vs-c-overridden-methods-from.html' title='Python vs C++: overridden methods from the base class constructor '/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-579699720729018123</id><published>2011-09-21T12:59:00.000+03:00</published><updated>2013-07-06T01:38:00.426+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MSVC"/><category scheme="http://www.blogger.com/atom/ns#" term="С++"/><title type='text'>C2813</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Побороть &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb384890(v=vs.90).aspx&quot; target=&quot;_blank&quot;&gt;C2813&lt;/a&gt; из-за &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb385193.aspx&quot;  target=&quot;_blank&quot;&gt;/MP4&lt;/a&gt; можно указав параметр /MP1 в свойствах компиляции модуля для которого возникает указанная ошибка.  &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/579699720729018123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2011/09/c2813.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/579699720729018123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/579699720729018123'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2011/09/c2813.html' title='C2813'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-398011372441407331</id><published>2008-06-05T20:49:00.007+03:00</published><updated>2013-07-06T01:38:36.514+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MSVC"/><category scheme="http://www.blogger.com/atom/ns#" term="С++"/><title type='text'>VS tricks: C++ include directories from file</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Небольшой трюк для быстрого переноса общих настроек с одного проекта в другой в случае с MS Visual Studio. Опробовано было на 2005й студии, но должно работать и на других.&lt;br /&gt;&lt;br /&gt;В данном случае, будут переноситься include directories, но наверное так можно переносить и другие настройки..&lt;/div&gt;&lt;br /&gt;&lt;span id=&quot;fullpost&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;1. Создаем, собственно, файл с настройками и сохраняем его в папке с solution-ом. В случае include directories в себе он должен содержать, например, следующее:&lt;pre&gt;/I..\Include&lt;br /&gt;/I..\CoeffTables&lt;br /&gt;/I..\Views&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2. Открываем свойства проекта. Идем следующим путем:&lt;br /&gt;&lt;code&gt;Configuration Properties -&gt; C/C++ -&gt; Command Line -&gt; Additional options: &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Вписываем туда путь к файлу в виде:&lt;br /&gt;&lt;code&gt;@filepath/filename&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;4. Несколько файлов разделяются пробелами:&lt;br /&gt;&lt;code&gt;@file1path/file1name @file2path/file2name&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Плюсы:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;быстрая конфигурация проектов;&lt;/li&gt;&lt;li&gt;файл с настройками можно генерить автоматически;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;i&gt;Минусы:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;в случае с include directories, нельзя перейти к файлу из IDE.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;i&gt;Вывод:&lt;/i&gt;&lt;/b&gt; Решение можно использовать для небольших проектов, состоящих из большого количества модулей. Например, для разработки плагинов.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/398011372441407331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2008/06/vs-trick-c-include-directories-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/398011372441407331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/398011372441407331'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2008/06/vs-trick-c-include-directories-from.html' title='VS tricks: C++ include directories from file'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-6576021273933758011</id><published>2008-04-03T20:15:00.003+03:00</published><updated>2013-07-06T01:39:20.811+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gdb"/><category scheme="http://www.blogger.com/atom/ns#" term="stl"/><category scheme="http://www.blogger.com/atom/ns#" term="С++"/><title type='text'>inline особенности отладки с GDB</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;При отладке с &lt;code&gt;GDB&lt;/code&gt; в пошаговом режиме, в определенных случаях, команда &lt;code&gt;step&lt;/code&gt; вместо ожидаемого перехода внутрь функции (даже из текущего модуля), подобно ивану сусанину, заводит в непроходимые дебри исходников &lt;code&gt;STL&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;В процессе продолжительного гуглования причина выяснилась — &lt;code&gt;inline&lt;/code&gt; функции. Очевидное решение: собирать дебажную версию проекта без &lt;code&gt;inline&lt;/code&gt; функций. Для &lt;code&gt;GCC&lt;/code&gt; — это флажок &lt;code&gt;-fno-inline&lt;/code&gt;. Решение кривоватое, имхо, но дебажиться стало проще.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b&gt;&lt;i&gt;linkdump&lt;/i&gt;&lt;/b&gt; по результатам инвестигейшна.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Из &lt;a href=&quot;http://gcc.gnu.org/ml/gcc/1999-11/msg00710.html&quot; target=&quot;_blank&quot;&gt;архива переписки &lt;code&gt;gcc@gcc.gnu.org&lt;/code&gt;&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The bug is partly Gdb, partly the stabs debug format, and partly the emitted debugging information.&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.sourceware.org/ml/gdb/2002-02/msg00283.html&quot; target=&quot;_blank&quot;&gt;Аналогичный bug-report в mail-list архиве &lt;code&gt;gdb@sources.redhat.com&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://vladimir_prus.blogspot.com/2007/11/breakpoints-in-constructors.html&quot; target=&quot;_blank&quot;&gt;История по отлавливании бряк в конструкторах&lt;/a&gt;. Большинство записей в &lt;a href=&quot;http://vladimir_prus.blogspot.com/&quot; target=&quot;_blank&quot;&gt;блоге&lt;/a&gt;, кстати, про отладку и GDB.&lt;/li&gt;&lt;li&gt;Параметры для GCC: &lt;a href=&quot;http://www.onlamp.com/pub/a/onlamp/2007/04/03/getting-familiar-with-gcc-parameters.html&quot; target=&quot;_blank&quot;&gt;onlamp.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/6576021273933758011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2008/04/inline-gdb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/6576021273933758011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/6576021273933758011'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2008/04/inline-gdb.html' title='inline особенности отладки с GDB'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-4527771691378908142</id><published>2008-02-20T20:47:00.002+02:00</published><updated>2012-08-29T02:43:37.749+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><title type='text'>первые функции на баше</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;определение функций&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;фунцию на баше можно определить так: &lt;br /&gt;&lt;pre class=&quot;brush: bash&quot;&gt;function function_name {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt;можно так:&lt;pre class=&quot;brush: bash&quot;&gt;function_name () {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt;в принципе, у меня получилось и так:&lt;br /&gt;&lt;pre class=&quot;brush: bash&quot;&gt;function function_name () {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt;&lt;a href=&quot;http://gazette.lrn.ru/rus/articles/abs-guide/c12745.html&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt; рекомендуют использовать способ номер два в силу его большей переносимости. &lt;br /&gt;&lt;span style=&quot;font-size:78%;&quot;&gt;кстати, &lt;a href=&quot;http://gazette.lrn.ru/rus/articles/abs-guide/index.html&quot; target=&quot;_blank&quot;&gt;неплохая дока по башу с большим количеством примеров&lt;/a&gt; :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Возвращение значений из функций&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;здесь сюрпрайз. в баше есть встроеная команда &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt;, используя которую можно завершить выполнение функции в необходимый момент. почти как в C++. отличие в том, что &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt; ничего НЕ возвращает :) &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt; всего лишь записывает код завершения функции в глобальную переменную &lt;code&gt;$?&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;результат выполнения из функции можно вернуть через:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;глобальные переменные;&lt;/li&gt;&lt;li&gt;команду вывода в стандартный поток &lt;code&gt;&lt;strong&gt;echo&lt;/strong&gt;&lt;/code&gt;;&lt;/li&gt;&lt;/ol&gt;способ номер 1 вроде понятен. остается только угадывать в какой именно переменной результат.. можно принять некоторое соглашение именования переменных и для хранения результата использовать переменные FUNCT_NAME_RES1, FUNCT_NAME_RES2 и т.д.; или просто в масиве FUNCT_NAME_RES.&lt;br /&gt;&lt;br /&gt;способ номер 2 является более элегантным, согласно упоминаемой доке :) так результат выполнения функции в данном случае, цитирую, &lt;q&gt;cнимается со стандартного вывода конструкцией подстановки команд&lt;/q&gt;. что это означает проще показать на примере:&lt;br /&gt;&lt;pre class=&quot;brush: bash&quot;&gt;foo () {&lt;br /&gt;echo &quot;12&quot;&lt;br /&gt;return 0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;value1=`foo`&lt;/pre&gt;чему равно &lt;code&gt;value1&lt;/code&gt;? правильно -- 12. это и есть более элегантное решение. прощай, трейс-лог. превед, трейс-лог :)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;косвенные ссылки на переменные&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;в двух словах, косвенные ссылки -- это обращение к переменной через ее имя, хранящееся в другой строковой переменной. подробнее и с примерами -- &lt;a href=&quot;http://gazette.lrn.ru/rus/articles/abs-guide/x4788.html#IVRREF&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;зачем косвенные ссылки в посте о функциях? почему-то подумалось о них как о еще одном возможном способе получения результата выполнения функций, по аналогии с ссылками в C++. но изменить значение переменной через косвенную ссылку почему-то не получилось. и если дальше продолжать аналогии с C++, то косвенная ссылка в баше -- это почти как константная ссылка в плюсах.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/4527771691378908142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2008/02/blog-post_20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/4527771691378908142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/4527771691378908142'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2008/02/blog-post_20.html' title='первые функции на баше'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-5159377624074638065</id><published>2008-02-12T18:44:00.002+02:00</published><updated>2014-09-29T22:46:36.887+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><title type='text'>.NET command-line компилятор</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;чтобы собрать небольшой проект на C# бывает достаточно командной строки. для чего достаточно наличие установленного фреймворка, без которого собственно .NET-приложение и не запустишь.&lt;br /&gt;&lt;br /&gt;C# компилятор для командной строки можно найти в директории: &lt;pre&gt;%windir%\Microsoft.NET\Framework\&lt;version&gt;&lt;/version&gt;&lt;/pre&gt;&lt;br /&gt;далее сохраняем текст программы в файл, например, с названием &lt;span style=&quot;font-style:italic;&quot;&gt;cool_appl.cs&lt;/span&gt; и компилим:&lt;br /&gt;&lt;pre&gt;csc cool_appl.cs&lt;/pre&gt;запускаем приложение&lt;br /&gt;&lt;pre&gt;cool_appl&lt;/pre&gt;&lt;br /&gt;больше параметров для запуска компилятора можно посмотреть в &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/ms379563.aspx&quot; target=&quot;_blank&quot;&gt;МСДН&lt;/a&gt;е. &lt;span style=&quot;font-size:78%;&quot;&gt; идея подсмотрена &lt;a href=&quot;http://www.tech-funda.com/?p=24&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/5159377624074638065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2008/02/net-command-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/5159377624074638065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/5159377624074638065'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2008/02/net-command-line.html' title='.NET command-line компилятор'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7985992584888418509.post-3398459268407564546</id><published>2008-02-11T17:19:00.005+02:00</published><updated>2013-07-05T23:51:26.622+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><title type='text'>пробелы как часть синтакса баша</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-weight:bold;font-style:italic;&quot;&gt;объявление переменных&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;при инициализации переменной (это когда ей присваивается значение) знак равно нельзя выделять пробелами, т.е. &lt;br /&gt;&lt;pre&gt;val1=12 #правильно&lt;br /&gt;&lt;br /&gt;val1 = 12 #неправильно&lt;br /&gt;val1= 12 #неправильно&lt;br /&gt;val1 =12 #неправильно&lt;/pre&gt;&lt;br /&gt;об этом могут сообщать следующие ошибки:&lt;br /&gt;&lt;pre&gt;&lt;ul&gt;&lt;li&gt;val1: command not found&lt;/li&gt;&lt;br /&gt;&lt;li&gt;12: command not found&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;font-style:italic;&quot;&gt;условные переходы&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;при написании на баше условных переходов (это там где &lt;code&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/code&gt;), условие (оно же предикат) должно заключаться в скобки. и скобки эти обязательно должны быть окружены пробелами. т.е.:&lt;br /&gt;&lt;pre&gt;if [ $1 -gt 0 ]; then #правильно&lt;br /&gt;&lt;br /&gt;if[$1 -gt 0]; then #неправильно&lt;/pre&gt;&lt;br /&gt;отсутсвие пробелов сигнализируется ошибками типа:&lt;br /&gt;&lt;pre&gt;&lt;ul&gt;&lt;li&gt;syntax error near unexpected token `then&#39;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[0: command not found&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spkdev.blogspot.com/feeds/3398459268407564546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://spkdev.blogspot.com/2008/02/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/3398459268407564546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7985992584888418509/posts/default/3398459268407564546'/><link rel='alternate' type='text/html' href='http://spkdev.blogspot.com/2008/02/blog-post.html' title='пробелы как часть синтакса баша'/><author><name>Sergiy Krupyna</name><uri>https://plus.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAANBk/xUiFkF1WJOk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>