Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Выполнение конвейера в bash скрипте  (Прочитано 2364 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн anixs

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Выполнение конвейера в bash скрипте
« : 01 Сентября 2013, 16:36:38 »
Простите но я дурак помогите плиз :'( с конвером команд

Так выполняет

#!/bin/bash

netstat -rn | grep 10.128.0.0 | grep 255.128.0.0 | grep 10.8.2.1 | grep wan1


а так нет

#!/bin/bash

qwe="netstat -rn | grep 10.128.0.0 | grep 255.128.0.0 | grep 10.8.2.1 | grep wan1"
$qwe


Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Выполнение конвейера в bash скрипте
« Ответ #1 : 01 Сентября 2013, 16:53:52 »
qwe=`netstat -rn | grep 10.128.0.0 | grep 255.128.0.0 | grep 10.8.2.1 | grep wan1`
echo $qwe
Wars ~.o

Оффлайн anixs

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Выполнение конвейера в bash скрипте
« Ответ #2 : 01 Сентября 2013, 17:08:46 »
Так не пойдет конвейерная команда в скрипте последовательно собирается

#!/bin/bash

_rConfPut="/flash/skr/route"

function valid_ip()
{
        local ip=$1
        local stat=1

        if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
                OIFS=$IFS
                IFS='.'
                ip=($ip)
                IFS=$OIFS
                [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
                && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
                stat=$?
        fi
        return $stat
}

for _rFile in `find $_rConfPut -type f`
do
        echo $_rFile
        _cmdRun=""
        _cmdChek=""
        while read line; do
                _cmdChek=""
                _cmdRun=""
                set -- $line
                #echo "$1 $2 $3 $4"
                if valid_ip $1; then
                        _cmdRun="route add -net $1"
                        _cmdChek="netstat -rn | grep $1"
                        if valid_ip $2; then
                                _cmdRun="$_cmdRun gw $2"
                                _cmdChek="$_cmdChek | grep $2"
                                if valid_ip $3; then
                                        _cmdRun="$_cmdRun netmask $3"
                                        _cmdChek="$_cmdChek | grep $3"
                                fi
                                if [ "$4" != "NULL" ]; then
                                        _cmdRun="$_cmdRun dev $4"
                                        _cmdChek="$_cmdChek | grep $4"
                                fi
                                #echo "$_cmdRun"
                                echo "$_cmdChek"
                                $_cmdChek

                                # Проверяем существование маршрута
                                #WER=`$_cmdChek`
                                #ec$WER"
                                #if [ $? -ne 0 ]; then
                                #if $_cmdChek; then
                                #       echo "yes"
                                #else
                                        echo "no"
                                #fi
                        fi
                fi
        done < $_rFile
done


Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Выполнение конвейера в bash скрипте
« Ответ #3 : 01 Сентября 2013, 20:23:59 »
Можно решить тем же способом:
https://forum.ubuntu.ru/index.php?topic=213281.0

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.