<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии к записи: Частые ошибки программирования на Bash (часть пятая, она же последняя)</title>
	<atom:link href="http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/feed" rel="self" type="application/rss+xml" />
	<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html</link>
	<description>Линуксоид на велосипеде с моторчиком</description>
	<lastBuildDate>Sun, 05 Sep 2010 18:08:31 +0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Автор: bappoy</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10216</link>
		<dc:creator>bappoy</dc:creator>
		<pubDate>Sun, 27 Dec 2009 20:31:49 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10216</guid>
		<description>Опубликовал развёрнутый ответ отдельным постом. Спасибо за наводку на интересную тему :-)</description>
		<content:encoded><![CDATA[<p>Опубликовал развёрнутый ответ отдельным постом. Спасибо за наводку на интересную тему :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: flavi</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10191</link>
		<dc:creator>flavi</dc:creator>
		<pubDate>Sat, 26 Dec 2009 22:16:54 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10191</guid>
		<description>да я же не дурак, я об этом подумал, но на деле это не так, в консоли: 
/bin/bash --posix --verbose --norc  # в консоли нормально работает...
/bin/bash --verbose -r  # тоже работает
в файле, без флага посикс:
#!/bin/bash --verbose -r 
выводит вышеописанную ошибку, причем выводит ее, как я уже написал при любых опциях больше одной в том числе коротких. Не верите, попробуйте сами: 

echo \#\!/bin/bash --verbole -r &gt; test
chmod u+x test
./test
rm test

я проверял на двух машинах с дебиан и дженту.</description>
		<content:encoded><![CDATA[<p>да я же не дурак, я об этом подумал, но на деле это не так, в консоли:<br />
/bin/bash &#8211;posix &#8211;verbose &#8211;norc  # в консоли нормально работает&#8230;<br />
/bin/bash &#8211;verbose -r  # тоже работает<br />
в файле, без флага посикс:<br />
#!/bin/bash &#8211;verbose -r<br />
выводит вышеописанную ошибку, причем выводит ее, как я уже написал при любых опциях больше одной в том числе коротких. Не верите, попробуйте сами: </p>
<p>echo \#\!/bin/bash &#8211;verbole -r &gt; test<br />
chmod u+x test<br />
./test<br />
rm test</p>
<p>я проверял на двух машинах с дебиан и дженту.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: bappoy</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10181</link>
		<dc:creator>bappoy</dc:creator>
		<pubDate>Sat, 26 Dec 2009 11:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10181</guid>
		<description>я не гуглю, у меня ссылка на стандарты POSIX всегда под рукой :)

Попробую объяснить еще раз. Опция &lt;code&gt;--posix&lt;/code&gt; влючает режим совместимости со стандартом, и все остальные опции (кроме этой) должны соответствовать, поэтому он ругается на &lt;code&gt;--verbose&lt;/code&gt;. Если &lt;code&gt;--posix&lt;/code&gt; не задано, то ругаться не на что и все опции, описанные в мане, воспринимаются нормально. По умолчанию режим POSIX выключен, т.к. он слишком сильно ограничивает функциональность. А кто хочет совместимости (чтобы скрипт работал на разных системах, в т.ч. в FreeBSD, Solaris, HPUX и т.д. со своими реализациями sh, а не GNU), тот полагается только на функциональность, определённую в стандарте.</description>
		<content:encoded><![CDATA[<p>я не гуглю, у меня ссылка на стандарты POSIX всегда под рукой :)</p>
<p>Попробую объяснить еще раз. Опция <code>--posix</code> влючает режим совместимости со стандартом, и все остальные опции (кроме этой) должны соответствовать, поэтому он ругается на <code>--verbose</code>. Если <code>--posix</code> не задано, то ругаться не на что и все опции, описанные в мане, воспринимаются нормально. По умолчанию режим POSIX выключен, т.к. он слишком сильно ограничивает функциональность. А кто хочет совместимости (чтобы скрипт работал на разных системах, в т.ч. в FreeBSD, Solaris, HPUX и т.д. со своими реализациями sh, а не GNU), тот полагается только на функциональность, определённую в стандарте.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: flavi</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10180</link>
		<dc:creator>flavi</dc:creator>
		<pubDate>Sat, 26 Dec 2009 10:42:51 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10180</guid>
		<description>нет, с короткими опциями то же самое, кроме того, одна длинная опция воспринимается им нормально, как, впрочем, и короткая... Вообще, в линукс вроде как совместимость с посикс какая то чисто формальная т.е. она есть но не используется... везде много чего дополнительного добавляют и предоставляют режим совместимости с посикс, но поведением по умолчанию он не является. Но ладно, раз уж вы уже гуглите, то я лучше сам поищу ответ. Все равно английский надо когда-нибудь изучать...</description>
		<content:encoded><![CDATA[<p>нет, с короткими опциями то же самое, кроме того, одна длинная опция воспринимается им нормально, как, впрочем, и короткая&#8230; Вообще, в линукс вроде как совместимость с посикс какая то чисто формальная т.е. она есть но не используется&#8230; везде много чего дополнительного добавляют и предоставляют режим совместимости с посикс, но поведением по умолчанию он не является. Но ладно, раз уж вы уже гуглите, то я лучше сам поищу ответ. Все равно английский надо когда-нибудь изучать&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: bappoy</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10176</link>
		<dc:creator>bappoy</dc:creator>
		<pubDate>Sat, 26 Dec 2009 09:38:22 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10176</guid>
		<description>Стандартом POSIX на шелл (http://www.opengroup.org/onlinepubs/009695399/index.html) допускаются только короткие опции (-v), поэтому и ругается на &lt;code&gt;--verbose&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>Стандартом POSIX на шелл (<a href="http://www.opengroup.org/onlinepubs/009695399/index.html" rel="nofollow">http://www.opengroup.org/onlinepubs/009695399/index.html</a>) допускаются только короткие опции (-v), поэтому и ругается на <code>--verbose</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: flavi</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10163</link>
		<dc:creator>flavi</dc:creator>
		<pubDate>Fri, 25 Dec 2009 18:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10163</guid>
		<description>Действительно, спасибо, тут я не подумал... Но все равно если писать
#!/bin/bash --verbose --posix
то это тоже не работает. При этом если оставить только одну из опций, то работает нормально...</description>
		<content:encoded><![CDATA[<p>Действительно, спасибо, тут я не подумал&#8230; Но все равно если писать<br />
#!/bin/bash &#8211;verbose &#8211;posix<br />
то это тоже не работает. При этом если оставить только одну из опций, то работает нормально&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: bappoy</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10155</link>
		<dc:creator>bappoy</dc:creator>
		<pubDate>Fri, 25 Dec 2009 11:08:27 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10155</guid>
		<description>Опции &lt;code&gt;--noprofile&lt;/code&gt; и &lt;code&gt;--norc&lt;/code&gt; имеют смысл только в том случае, если bash вызывается как интерактивная оболочка. А если он вызывается как интерпретатор, то файлы bash.profile и .bashrc не читаются и эти опции бессмысленны.</description>
		<content:encoded><![CDATA[<p>Опции <code>--noprofile</code> и <code>--norc</code> имеют смысл только в том случае, если bash вызывается как интерактивная оболочка. А если он вызывается как интерпретатор, то файлы bash.profile и .bashrc не читаются и эти опции бессмысленны.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: flavi</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-10147</link>
		<dc:creator>flavi</dc:creator>
		<pubDate>Fri, 25 Dec 2009 00:38:29 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-10147</guid>
		<description>с большим удовольствие читал ваши статьи, может быть вы еще одну ошибку разъясните? Например я пишу 
$ /bin/bash --noprofile --norc --posix -- 
и  это работает. Но когда я пытаюсь запустить скрипт, который начинается со строчки
#!/bin/bash --noprofile --norc --posix -- 
происходит ошибка... Пишет только: &quot;/bin/bash: --noprofile --norc --posix --: неправильная опция&quot; и выводит хелп... без завершающего -- то же самое. Более того, если оставить только одну любую опцию - это работает, но уже для любых(не только перечисленных) двух опций происходит та же самая ошибка...</description>
		<content:encoded><![CDATA[<p>с большим удовольствие читал ваши статьи, может быть вы еще одну ошибку разъясните? Например я пишу<br />
$ /bin/bash &#8211;noprofile &#8211;norc &#8211;posix &#8212;<br />
и  это работает. Но когда я пытаюсь запустить скрипт, который начинается со строчки<br />
#!/bin/bash &#8211;noprofile &#8211;norc &#8211;posix &#8212;<br />
происходит ошибка&#8230; Пишет только: &laquo;/bin/bash: &#8211;noprofile &#8211;norc &#8211;posix &#8211;: неправильная опция&raquo; и выводит хелп&#8230; без завершающего &#8212; то же самое. Более того, если оставить только одну любую опцию &#8211; это работает, но уже для любых(не только перечисленных) двух опций происходит та же самая ошибка&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Даник</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-8577</link>
		<dc:creator>Даник</dc:creator>
		<pubDate>Sun, 23 Aug 2009 23:04:18 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-8577</guid>
		<description>~$ echo hello world!
hello world!
~$</description>
		<content:encoded><![CDATA[<p>~$ echo hello world!<br />
hello world!<br />
~$</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Даник</title>
		<link>http://bappoy.pp.ru/2008/12/29/bash-pitfalls-part05.html/comment-page-1#comment-8576</link>
		<dc:creator>Даник</dc:creator>
		<pubDate>Sun, 23 Aug 2009 22:58:10 +0000</pubDate>
		<guid isPermaLink="false">http://bappoy.pp.ru/?p=494#comment-8576</guid>
		<description>~$ echo &quot;Hello World!&quot;
echo &quot;Hello World&quot;
Hello World
~$

~$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
~$ 

действительно подстановка идёт, но не совсем понял КАК!</description>
		<content:encoded><![CDATA[<p>~$ echo &laquo;Hello World!&raquo;<br />
echo &laquo;Hello World&raquo;<br />
Hello World<br />
~$</p>
<p>~$ bash &#8211;version<br />
GNU bash, version 3.2.48(1)-release (x86_64-pc-linux-gnu)<br />
Copyright (C) 2007 Free Software Foundation, Inc.<br />
~$ </p>
<p>действительно подстановка идёт, но не совсем понял КАК!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
