LINUX.ORG.RU

История изменений

Исправление No, (текущая версия) :

Вариант bash при помощи программы socat:

script1

#! /bin/bash

if [[ "$1" == 'server' ]]; then
    socat UNIX-LISTEN:/tmp/script1.socket,fork exec:$0
    exit
fi

function one() {
    printf "1\n"
}

function two() {
    printf "2\n"
}

read cmd
case "$cmd" in
    'one' ) one;;
    'two' ) two;;
    * ) echo "unknown command '$cmd'";;
esac

script2

#! /bin/bash

reply=$(echo "$1" | socat UNIX-CONNECT:/tmp/script1.socket -)
echo "$reply"

в одном терминале запустить

./script1 server

в другом

./script2 one
./script2 two
./script2 three

Исходная версия No, :

Вариант bash при помощи программы socat:

script1

#! /bin/bash

if [[ "$1" == 'server' ]]; then
    socat UNIX-LISTEN:/tmp/script1.socket,fork exec:$0
    exit
fi

function one() {
    printf "1\n"
}

function two() {
    printf "2\n"
}

read cmd
case "$cmd" in
    'one' ) one;;
    'two' ) two;;
    * ) echo "unknown command '$cmd'";;
esac

script2

#! /bin/bash

reply=$(echo "$1" | socat UNIX-CONNECT:/tmp/script1.socket -)
echo "$reply"

в одном терминале запустить

./script1

в другом

./script2 one
./script2 two
./script2 three