<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Парсинг смешанного порядка аргументов функций</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html</link>
    <description>Имеется Дебиановский баш и функция вида:&lt;br&gt;&lt;br&gt;site_create &amp;lt;domain name&amp;gt; &#091;ipv4=&amp;lt;ipv4 address&amp;gt;&#093; &#091;ipv6=&amp;lt;ipv6 address&amp;gt;&#093; &#091;&amp;lt;template&amp;gt;&#093; &lt;br&gt;&lt;br&gt;Порядок аргументов &#091;ipv4=&amp;lt;ipv4 address&amp;gt;&#093; &#091;ipv6=&amp;lt;ipv6 address&amp;gt;&#093; &#091;&amp;lt;template&amp;gt;&#093; может быть разный.&lt;br&gt;&lt;br&gt;Пока сделал черновик:&lt;br&gt;&#091;code&#093;&lt;br&gt;site_create() &#123;&lt;br&gt;    local CONFIG_TEMPLATE=&quot;default&quot;&lt;br&gt;&lt;br&gt;    if &#091;&#091; -z &quot;$1&quot; &#093;&#093;&lt;br&gt;    then&lt;br&gt;         echo -e &quot;$&#123;COLOR_RED&#125;Failure.$&#123;FORMAT_END&#125; Please specify a site name.&quot;&lt;br&gt;         exit 1&lt;br&gt;    fi&lt;br&gt;&lt;br&gt;# todo $3 and $4&lt;br&gt;    if &#091;&#091; ! -z &quot;$2&quot; &#093;&#093; &amp;&amp; &#091;&#091; -z &quot;$3&quot; &#093;&#093; &amp;&amp; &#091;&#091; -z &quot;$4&quot; &#093;&#093;&lt;br&gt;    then&lt;br&gt;         local CONFIG_TEMPLATE=&quot;$2&quot;&lt;br&gt;else&lt;br&gt;if test; then&lt;br&gt;  echo error;&lt;br&gt;fi&lt;br&gt;&lt;br&gt;    fi&lt;br&gt;&lt;br&gt;    for arg in $2 $3 $4 ;&lt;br&gt;    do&lt;br&gt;    local localARGv4=$(echo $arg &amp;#124; awk -F= &apos;/^ipv4=/&#123;print $2;&#125;&apos;)&lt;br&gt;    local localARGv6=$(echo $arg &amp;#124; awk -F= &apos;/^ipv6=/&#123;print $2;&#125;&apos;)&lt;br&gt;    if &#091;&#091; ! -z &quot;$localARGv4&quot; &#093;&#093;&lt;br&gt;    then&lt;br&gt;Ipv4=$localARGv4&lt;br&gt;    fi&lt;br&gt;    if &#091;&#091; ! -z &quot;$localARGv6&quot; &#093;&#093;&lt;br&gt;    then&lt;br&gt;Ipv6=$localARGv6&lt;br&gt;    fi&lt;br&gt;    done&lt;br&gt;    ...&lt;br&gt;&lt;br&gt;&#125;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Если строгий поря</description>

<item>
    <title>Парсинг смешанного порядка аргументов функций (Аноним)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#10</link>
    <pubDate>Wed, 03 Apr 2019 09:38:02 GMT</pubDate>
    <description>&amp;gt; Судя по громоздкости не-getopt решения чисто &quot;на шелле&quot; - шелл язык использован &lt;br&gt;&amp;gt; не по назначению.&lt;br&gt;&lt;br&gt;Бывает так, что под рукой есть только чисто &quot;Bourne shell&quot; и нет даже &quot;Bourne again shell&quot;,&lt;br&gt;не говоря уже о python, perl.&lt;br&gt;Иногда такое случается.&lt;br&gt;&lt;br&gt;&amp;gt; Типа: не тем средством решена задача. Или - неверно поставлена задача.&lt;br&gt;&lt;br&gt;Всё тем и всё верно поставлено.&lt;br&gt;&lt;br&gt;&amp;gt; Разбор аргументов настолько рядовая и частая вещь, что полученный выше большой объём &lt;br&gt;&amp;gt; кода - признак &quot;штопора мысли&quot;.&lt;br&gt;&lt;br&gt;Нет. Врёте вы всё. Это всё ваши лживые инсинуации.&lt;br&gt;&lt;br&gt;&amp;gt; :) Keep it simple.&lt;br&gt;&lt;br&gt;Куда ещё проще?!&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (Аноним)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#9</link>
    <pubDate>Sun, 31 Mar 2019 19:43:27 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Getops &lt;br&gt;&amp;gt; Это башизм.&lt;br&gt;&amp;gt; Только для Линукс систем и только в которых установлен баш.&lt;br&gt;&lt;br&gt;Судя по громоздкости не-getopt решения чисто &quot;на шелле&quot; - шелл язык использован не по назначению.&lt;br&gt;&lt;br&gt;Типа: не тем средством решена задача. Или - неверно поставлена задача.&lt;br&gt;&lt;br&gt;Разбор аргументов настолько рядовая и частая вещь, что полученный выше большой объём кода - признак &quot;штопора мысли&quot;.&lt;br&gt;&lt;br&gt;:) Keep it simple.&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (universite)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#8</link>
    <pubDate>Sun, 10 Mar 2019 05:37:36 GMT</pubDate>
    <description>&amp;gt; Getops &lt;br&gt;&lt;br&gt;Это башизм.&lt;br&gt;Только для Линукс систем и только в которых установлен баш.&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (Another)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#7</link>
    <pubDate>Sun, 24 Feb 2019 09:20:06 GMT</pubDate>
    <description>Getops&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;             &lt;br&gt;&amp;gt; echo &quot;Error: unexpected argument: $1&quot; 1&amp;gt;&amp;2 &lt;br&gt;&amp;gt;             &lt;br&gt;&amp;gt; exit 1 &lt;br&gt;&amp;gt;         ;; &lt;br&gt;&amp;gt;     esac &lt;br&gt;&amp;gt;     shift &lt;br&gt;&amp;gt; done &lt;br&gt;&amp;gt; echo &quot;$&#123;my_variable&#125;&quot; &lt;br&gt;&amp;gt; echo &quot;$&#123;verbose&#125;&quot; &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (vg)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#6</link>
    <pubDate>Mon, 04 Feb 2019 09:49:40 GMT</pubDate>
    <description>if ... elif ... громоздко&lt;br&gt;&lt;br&gt;#!/bin/bash&lt;br&gt;&lt;br&gt;usage=&quot;$(basename $0) &#091;-v&#093; -m &amp;lt;text&amp;gt;&quot;&lt;br&gt;&lt;br&gt;my_variable=&quot;&quot;&lt;br&gt;verbose=&quot;false&quot;&lt;br&gt;while &#091; $# -gt 0 &#093;; do&lt;br&gt;    case &quot;$1&quot; in&lt;br&gt;        -h&amp;#124;-&#092;?)&lt;br&gt;            echo &quot;$usage&quot;&lt;br&gt;            exit 0&lt;br&gt;        ;;&lt;br&gt;        -m)&lt;br&gt;            if &#091; -z &quot;$&#123;2:-&#125;&quot; &#093;; then&lt;br&gt;               echo &quot;Error: $1 expects a parameter&quot; 1&amp;gt;&amp;2&lt;br&gt;               exit 1&lt;br&gt;            fi&lt;br&gt;            my_variable=&quot;$2&quot;&lt;br&gt;            shift&lt;br&gt;        ;;&lt;br&gt;        -v)&lt;br&gt;            verbose=&quot;true&quot;&lt;br&gt;        ;;&lt;br&gt;        *)&lt;br&gt;            echo &quot;Error: unexpected argument: $1&quot; 1&amp;gt;&amp;2&lt;br&gt;            exit 1&lt;br&gt;        ;;&lt;br&gt;    esac&lt;br&gt;    shift&lt;br&gt;done&lt;br&gt;&lt;br&gt;echo &quot;$&#123;my_variable&#125;&quot;&lt;br&gt;echo &quot;$&#123;verbose&#125;&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (universite)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#5</link>
    <pubDate>Mon, 04 Feb 2019 08:44:25 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Всплыла проблема.&lt;br&gt;&amp;gt;&amp;gt; Тестилось на баше.&lt;br&gt;&amp;gt; это без разницы, не зависит от sh или bash &lt;br&gt;&lt;br&gt;Спс. Прибил гвоздями первую позицию за доменов, а остальное парсится через while.&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (михалыч)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#4</link>
    <pubDate>Mon, 04 Feb 2019 03:14:57 GMT</pubDate>
    <description>&amp;gt; Всплыла проблема.&lt;br&gt;&amp;gt; Тестилось на баше.&lt;br&gt;&lt;br&gt;это без разницы, не зависит от sh или bash&lt;br&gt;&lt;br&gt;&amp;gt; После цикла while обнулились перепенные $4, $3, $2, а $1 - получило &lt;br&gt;&amp;gt; значение последнего переменной &lt;br&gt;&lt;br&gt;всё правильно, классика жанра&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/usr/local/bin/bash&lt;br&gt;&lt;br&gt;while &#091; $# -ne 0 &#093; ; do&lt;br&gt;&lt;br&gt;    echo &quot;The value of &#092;$1 is now $1&quot;&lt;br&gt;&lt;br&gt;    shift&lt;br&gt;&lt;br&gt;done&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;./shift.sh a b c d&lt;br&gt;&lt;br&gt;The value of $1 is now a&lt;br&gt;The value of $1 is now b&lt;br&gt;The value of $1 is now c&lt;br&gt;The value of $1 is now d&lt;br&gt;&lt;br&gt;каждый запуск shift сдвигает переменные на одну позицию влево,&lt;br&gt;значение, сохранённое в $1 отбрасывается и больше не доступно,&lt;br&gt;$2 смещается в $1, $3 смещается в $2, $4 - в $3 и т.д.&lt;br&gt;&lt;br&gt;применяя цикл while и оператор shift нельзя будет использовать $2 $3 $4&lt;br&gt;их больше нет, используй новые полученные переменные ($v4 $v6 и т.д.)&lt;br&gt;&lt;br&gt;проблема может всплыть с проверкой домена (1-го аргумента) и&lt;br&gt;какого-то там template (4-го аргумента), надо чётко разграничить что есть что,&lt;br&gt;иначе есть риск перепутать&lt;br&gt;&lt;br&gt;решением может быть изменение </description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (universite)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#3</link>
    <pubDate>Mon, 04 Feb 2019 02:05:07 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;     shift &lt;br&gt;&amp;gt; done &lt;br&gt;&amp;gt; echo ip4=$v4 &lt;br&gt;&amp;gt; echo ip6=$v6 &lt;br&gt;&amp;gt; echo domain=$site &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&amp;gt; ./test.sh &quot;ipv6=2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d&quot; &quot;ipv4=192.168.1.1&quot; &quot;dom.com&quot; &lt;br&gt;&amp;gt; ip4=192.168.1.1 &lt;br&gt;&amp;gt; ip6=2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d &lt;br&gt;&amp;gt; domain=dom.com &lt;br&gt;&lt;br&gt;Всплыла проблема.&lt;br&gt;Тестилось на баше.&lt;br&gt;После цикла while обнулились перепенные $4, $3, $2, а $1 - получило значение последнего переменной&lt;br&gt;</description>
</item>

<item>
    <title>Парсинг смешанного порядка аргументов функций (universite)</title>
    <link>https://m.opennet.dev/openforum/vsluhforumID9/10258.html#2</link>
    <pubDate>Sun, 03 Feb 2019 19:42:38 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; echo ip4=$v4 &lt;br&gt;&amp;gt; echo ip6=$v6 &lt;br&gt;&amp;gt; echo domain=$site &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&amp;gt; ./test.sh &quot;ipv6=2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d&quot; &quot;ipv4=192.168.1.1&quot; &quot;dom.com&quot; &lt;br&gt;&amp;gt; ip4=192.168.1.1 &lt;br&gt;&amp;gt; ip6=2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d &lt;br&gt;&amp;gt; domain=dom.com &lt;br&gt;&amp;gt; что там в четвёртом аргументе зашито, что за шаблон, я не знаю &lt;br&gt;&amp;gt; пусть это будет &quot;домашкой&quot; &lt;br&gt;&lt;br&gt;спс.&lt;br&gt;Домашка будет разобраться с оператором shift.&lt;br&gt;</description>
</item>

</channel>
</rss>
