<?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; текст</title>
	<atom:link href="http://www.bagrincev.ru/tag/%d1%82%d0%b5%d0%ba%d1%81%d1%82/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>
	</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! -->
