<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Помогите уменьшить bash скрипт.]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11046</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11046&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Помогите уменьшить bash скрипт.».]]></description>
		<lastBuildDate>Sat, 31 Oct 2015 09:49:23 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98593#p98593</link>
			<description><![CDATA[<div class="codebox"><pre><code>sys[0-9][0-9].txt</code></pre></div><p>все файлы вида sys01.txt, sys02.txt, ... sys99.txt. </p><div class="codebox"><pre><code>sys[0-9][0-9][0-9].txt</code></pre></div><p>все файлы вида sys001.txt, sys002.txt, ... sys999.txt. </p><div class="codebox"><pre><code>sys[0-9]*[0-9].txt</code></pre></div><p>все файлы вида sys<span class="bbu">0</span><span class="bbu">1</span>.txt, sys<span class="bbu">0</span>0<span class="bbu">1</span>.txt, sys<span class="bbu">0</span>любое-количество-любых-символов<span class="bbu">1</span>.txt и так далее для всех комбинаций цифр в указанных позициях.</p><p>Во всех выше приведенных случаях поиск ведется только в заданном каталоге. Поиск в глуину не производится. </p><p>Если Вам надо обработать все файлы вида sysX.txt, где X соответствует любому количеству цифр используйте комбинацию find &quot;$basedir&quot; -maxdepth 1 -name &#039;sys*.txt&#039;. Используя фильтры grep/sed/awk/perl можете добиться искомого результата.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sat, 31 Oct 2015 09:49:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98593#p98593</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98592#p98592</link>
			<description><![CDATA[<p><strong>Rumata</strong> всё получилось, спасибо Вам огромное. Вставил между скобками снежинку.<br />Вот так </p><div class="codebox"><pre><code>for f in &quot;$basedir&quot;/sys[0-9]*[0-9].txt</code></pre></div><p>Так как если ещё один ряд добавлять, то он исчет 3х значный файл, если 2 пары скобок, то 2х значный.<br />Осталось разобраться, как сделать чтобы искал и одно число в имени и если вдруг 4 значные будут в имени файла.</p>]]></description>
			<author><![CDATA[null@example.com (wuratew)]]></author>
			<pubDate>Sat, 31 Oct 2015 09:28:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98592#p98592</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98591#p98591</link>
			<description><![CDATA[<p><strong>wuratew</strong><br />проверил, работает. Подскажите такой момент, я сообщение выше написал, если появится третий ряд цифр (тоесть теже самые тхт файлы, но с цифрами например 105,109), то как эта строка должна будет выглядеть?<br />Или например теже файлы но с одной цифрой, например: sys1.txt, sys8.txt?<br />И ещё вопрос, в под папках скрипт не будет искать похожие файлы?<br />А так очень здорово, я бы сказал великолепно, то что нужно, офигенно упростили его. Большая благодарность.</p><p>То есть имя файлы sysXXXX.txt<br />А под XXXX может быть любая цифра, (от 1 до 9999), и не обязательно по порядку, в разнобой.</p>]]></description>
			<author><![CDATA[null@example.com (wuratew)]]></author>
			<pubDate>Sat, 31 Oct 2015 08:41:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98591#p98591</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98578#p98578</link>
			<description><![CDATA[<p><strong>Rumata</strong> ВАУ, как компактно выглядит, и совсем не так как у меня, класс. Завтра проверю, обесчаю и отпишусь. Ещё вопрос, а если 3 ряд цифр появится то, то строка </p><div class="codebox"><pre><code>for f in &quot;$basedir&quot;/sys[0-9][0-9].txt</code></pre></div><p>, должна будет выглядеть так?<br /></p><div class="codebox"><pre><code>for f in &quot;$basedir&quot;/sys[0-9][0-9][0-9].txt</code></pre></div><p>Ого, похоже что мне можно будет избавится от скрипта script.sh</p>]]></description>
			<author><![CDATA[null@example.com (wuratew)]]></author>
			<pubDate>Fri, 30 Oct 2015 19:53:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98578#p98578</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98577#p98577</link>
			<description><![CDATA[<p>Попробуйте. Перед публикацией я проверил только на команде sleep с разными задержками в пределах 15 секунд. <br /></p><div class="codebox"><pre><code>
#!/bin/bash

basedir=&quot;${0%/*}&quot;

progname=&quot;$basedir/programma&quot;

invoke() {
	num=&quot;$(
		pidof -o $$ -o $PPID -o %PPID -x &quot;$progname&quot; \
		| pgrep -f &quot;$1&quot; \
		| wc -w
	)&quot;

	[ &quot;$num&quot; -eq 0 ] || return

	&quot;$progname&quot; &quot;$1&quot; &amp;
}

for f in &quot;$basedir&quot;/sys[0-9][0-9].txt
do
	invoke &quot;$f&quot;
done
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 30 Oct 2015 19:50:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98577#p98577</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98575#p98575</link>
			<description><![CDATA[<p>1. да, так как уже запущена одна копия и вторая ненужна<br />2. да, так как процесс с командой отсутствует в запущенных процессах<br />3. да, конечно, можно запускать сразу filename01 и filename05 и так далее, если они отсутствуют в процессах.</p><p>ЗЫ. Все команды запуска перечислены в файле script.sh<br />То есть, там может и не быть строчки например с цифрами 06, или 02 <br /></p><div class="codebox"><pre><code>/home/temp/programma /home/temp/sys01.txt
/home/temp/programma /home/temp/sys02.txt
/home/temp/programma /home/temp/sys03.txt
/home/temp/programma /home/temp/sys04.txt
/home/temp/programma /home/temp/sys05.txt
/home/temp/programma /home/temp/sys06.txt
тут и далее меняются только цифры в имени файла
/home/temp/programma /home/temp/sys50.txt</code></pre></div><p>Ну как бы , допустим команда на выполнение сегодня нужна, а через неделю допустим нет.<br />Как пример закоментировать её или удалить. и чтобы она не выполнялась</p>]]></description>
			<author><![CDATA[null@example.com (wuratew)]]></author>
			<pubDate>Fri, 30 Oct 2015 18:51:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98575#p98575</guid>
		</item>
		<item>
			<title><![CDATA[Re: Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98574#p98574</link>
			<description><![CDATA[<p>Я правильно понял задачу:</p><p>1. не запускать <strong>program filename_01</strong> если filename_01 уже в процессе обработки<br />2. немедленно запустить <strong>program filename_01</strong>, если этот файл не обрабатывается. <br />3. внешний скрипт script может запустить сразу несколько экземпляров программы program для разных файлов filename_nn</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 30 Oct 2015 18:46:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98574#p98574</guid>
		</item>
		<item>
			<title><![CDATA[Помогите уменьшить bash скрипт.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=98550#p98550</link>
			<description><![CDATA[<p>Добрый день. Помогите уменьшить bash скрипт.<br />Задача скрипта: Мониторить процесс, в случае его отсутствия запускать скрипт и выполнять команду по запуску. Если процесс присутствует, то ничего не запускать.<br />Программа запуска с параметрами выглядит так: /home/temp/programma /home/temp/sys01.txt<br />1. /home/temp/programma&nbsp; в единственном экземпляре<br />2. /home/temp/sys01.txt&nbsp; много текстовых файлов. различие только в цифрах имени файла.</p><p>Пример: В процессах висит команда /home/temp/programma /home/temp/sys02.txt, скрипт запускается по крону и проверяет, если есть, то закончить работу не запуская команду /home/temp/programma /home/temp/sys02.txt.<br />А также втотже момент проверки процесса отсутствует например /home/temp/programma /home/temp/sys15.txt, то он запускается команду /home/temp/programma /home/temp/sys15.txt, для того чтобы процесс появился.</p><p>Что на данный момент есть.<br /></p><div class="codebox"><pre><code>
#!/bin/bash

NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`

if [ $NUM -lt 0 ]
then
exit
else
/home/temp/script.sh  //в этом скрипте перечислены команды запуска , чуть ниже его код

fi
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`

if [ $NUM -lt 0 ]
then
exit
fi
exit 0 # прекращаем выполнение скрипта
</code></pre></div><p>Скрипт script.sh<br /></p><div class="codebox"><pre><code>
/home/temp/programma /home/temp/sys01.txt
/home/temp/programma /home/temp/sys02.txt
/home/temp/programma /home/temp/sys03.txt
тут и далее меняются только цифры в имени файла
/home/temp/programma /home/temp/sys50.txt
</code></pre></div><p>уф... увы, я не могу уменьшить скрипт (незнаю как правильно), будьте добры, помогите его уменьшить переменными или как ли ещё.</p>]]></description>
			<author><![CDATA[null@example.com (wuratew)]]></author>
			<pubDate>Fri, 30 Oct 2015 13:20:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=98550#p98550</guid>
		</item>
	</channel>
</rss>
