<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sb0y[AT]home &#187; bash</title>
	<atom:link href="http://www.bagrincev.ru/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bagrincev.ru</link>
	<description>Уютный бложик девелопера.</description>
	<lastBuildDate>Fri, 03 Dec 2010 13:30:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>bash-&gt;установка бита владельца директории из списка</title>
		<link>http://www.bagrincev.ru/bash-set-uids-from-list/</link>
		<comments>http://www.bagrincev.ru/bash-set-uids-from-list/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 22:05:17 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[динамические права]]></category>
		<category><![CDATA[список]]></category>
		<category><![CDATA[текст]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=976</guid>
		<description><![CDATA[Недавно пришлось решать немного странную задачку на BASH. Был список в текстовом формате: группа=путь Нужно было пройтись по каждому элементу списка и установить группу указанного в нём же. На сервере стоял старый BASH, ассоциативных массивов, в котором ещё небыло. Написал вот это: #!/bin/bash &#160; if &#91; &#34;$1&#34; == &#34;--help&#34; &#93; &#124;&#124; &#91; &#34;$1&#34; == &#34;help&#34; ]]></description>
			<content:encoded><![CDATA[<p>Недавно пришлось решать немного странную задачку на BASH. Был список в текстовом формате:</p>
<pre>
группа=путь
</pre>
<p>Нужно было пройтись по каждому элементу списка и установить группу указанного в нём же.<br />
На сервере стоял старый BASH, ассоциативных массивов, в котором ещё небыло.<br />
<span id="more-976"></span><br />
Написал вот это:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> == <span style="color: #ff0000;">&quot;--help&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> == <span style="color: #ff0000;">&quot;help&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Использование: &lt;имя скрипта&gt; &lt;путь до списка&gt; &lt;путь до лог-файла&gt; Все параметры не обязательны. Если скрипт не получит путь до файла-списка - попытается открыть файл 'list' в своей директории. Тоже самое касается лог-файла.&quot;</span>;
	<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;$2&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #007800;">log</span>=<span style="color: #ff0000;">&quot;log.txt&quot;</span>;
<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #007800;">log</span>=$<span style="color: #000000;">2</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
mess <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
	<span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">date</span></span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>D-<span style="color: #000000; font-weight: bold;">%</span>r<span style="color: #000000; font-weight: bold;">`</span>;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;[ <span style="color: #007800;">$date</span>] $1&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$log</span>;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;[ <span style="color: #007800;">$date</span>] $1&quot;</span>;
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$2&quot;</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
	<span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>;
	<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-w</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$log</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>;
<span style="color: #000000; font-weight: bold;">else</span>
	mess <span style="color: #ff0000;">&quot;Лог-файл не доступен для записи.&quot;</span> <span style="color: #000000;">0</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #007800;">l</span>=<span style="color: #ff0000;">&quot;list&quot;</span>;
<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #007800;">l</span>=$<span style="color: #000000;">1</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #007800;">list</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$l</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$list</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	mess <span style="color: #ff0000;">&quot;Ошибка при открытии файла-списка!&quot;</span> <span style="color: #000000;">1</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$list</span>;
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #007800;">group</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;=&quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
	<span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">dir</span></span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;=&quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">chgrp</span> <span style="color: #660033;">-R</span> <span style="color: #007800;">$group</span> <span style="color: #007800;">$dir</span><span style="color: #000000; font-weight: bold;">`</span>
	<span style="color: #000000; font-weight: bold;">then</span>
		mess <span style="color: #ff0000;">&quot;Установлена группа '<span style="color: #007800;">$group</span>' для дир. '<span style="color: #007800;">$dir</span>'&quot;</span> <span style="color: #000000;">0</span>;
	<span style="color: #000000; font-weight: bold;">else</span>
		mess <span style="color: #ff0000;">&quot;Ошибка при обработке дир. '<span style="color: #007800;">$dir</span>'&quot;</span> <span style="color: #000000;">0</span>;
	<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>Скрипт по умолчанию считывает текстовый файл &laquo;list&raquo;, лежащий рядом, в его директории. Если есть потребность указать файл из другой директории, вызывайте скрипт так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">script <span style="color: #000000; font-weight: bold;">&lt;</span>путь-до-файл-листа<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>путь-до-лог-файла<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Ещё можно посмотреть help-сообщение, командой <strong>script &#8211;help</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/bash-set-uids-from-list/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Gentoo-&gt;bash: установка всех движков для GTK одной командой</title>
		<link>http://www.bagrincev.ru/gentoo-bash-gtk-engine/</link>
		<comments>http://www.bagrincev.ru/gentoo-bash-gtk-engine/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 08:31:50 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Самопись]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[движок]]></category>
		<category><![CDATA[установка]]></category>
		<category><![CDATA[шрифты]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=897</guid>
		<description><![CDATA[Если скаченная тема с gnome-look.org (или с xfce-look.org) некрасиво отображается, как &#171;голая&#187;, тоесть без декораций и картинок &#8211; скорее всего у вас в системе не установлен движок, который она использует для рендеринга. В Gentoo можно установить все темы одной командой: emerge `emerge -s '@gtk-engine' &#124; sed -rne 's:\W+x11-themes/(\S+)$:\1:p'` -avn --keep-going Кстати по той же системе ]]></description>
			<content:encoded><![CDATA[<p>Если скаченная тема с gnome-look.org (или с xfce-look.org) некрасиво отображается, как &laquo;голая&raquo;, тоесть без декораций и картинок &#8211; скорее всего у вас в системе не установлен движок, который она использует для рендеринга.</p>
<p>В Gentoo можно установить все темы одной командой:<br />
<span id="more-897"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #000000; font-weight: bold;">`</span>emerge <span style="color: #660033;">-s</span> <span style="color: #ff0000;">'@gtk-engine'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-rne</span> <span style="color: #ff0000;">'s:\W+x11-themes/(\S+)$:\1:p'</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #660033;">-avn</span> <span style="color: #660033;">--keep-going</span></pre></div></div>

<p>Кстати по той же системе из репозитория ставятся все возможные шрифты.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #000000; font-weight: bold;">`</span>emerge <span style="color: #660033;">-s</span> <span style="color: #ff0000;">'@font'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-rne</span> <span style="color: #ff0000;">'s:\W+media-fonts/(\S+)$:\1:p'</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #660033;">-avn</span> <span style="color: #660033;">--keep-going</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/gentoo-bash-gtk-engine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Музыкальный будильник</title>
		<link>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/</link>
		<comments>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 13:41:57 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Самопись]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[mpd]]></category>
		<category><![CDATA[sh]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[будильник]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=753</guid>
		<description><![CDATA[Решил сделать так, чтобы каждое утро меня будила моя Ubuntu Linux. В биусе была включена функция Alarm, и был написан такой скриптик: #!/bin/sh &#160; #получаем время, конкретнее часы без минут и секунд time=`date \+\%H` &#160; #выставляем громкость и включаем каналы на звуковых картах amixer sset Master 90% amixer -c 1 sset PCM 100% unmute amixer ]]></description>
			<content:encoded><![CDATA[<p>Решил сделать так, чтобы каждое утро меня будила моя Ubuntu Linux.</p>
<p>В биусе была включена функция Alarm, и был написан такой скриптик:<br />
<span id="more-753"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#получаем время, конкретнее часы без минут и секунд</span>
<span style="color: #007800;"><span style="color: #000000; font-weight: bold;">time</span></span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> \+\<span style="color: #000000; font-weight: bold;">%</span>H<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#выставляем громкость и включаем каналы на звуковых картах</span>
amixer sset Master <span style="color: #000000;">90</span><span style="color: #000000; font-weight: bold;">%</span>
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">1</span> sset PCM <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span> unmute
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">1</span> sset Mic <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Если полученное время ровняется числу 8, говорим mpd начать играть.</span>
<span style="color: #666666; font-style: italic;"># Делается, чтобы музыка начинала играть в 8 часов, а не каждый запуск.</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$time</span>&quot;</span> <span style="color: #660033;">-eq</span> <span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span> mpc play ; <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></div></div>

<p>Скрипт можно вызвать из <strong>/etc/rc.local</strong>, но он выполняется от имени root&#8217;а, поэтому, делать это лучше вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'/usr/bin/wakeup'</span> sb0y</pre></div></div>

<p>где <strong>sb0y</strong> &#8211; имя пользователя, от имени, которого будет запускаться скрипт.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
