25
Lis

Kolejki Fifo i Sygnały w Bash’u

client.sh

#!/bin/bash
number=$1
server_home=$2
#sprawdza czy wyrażenia są równe oraz czy plik jest łączem nazwanym, jeżei nie wyświetla komunikat.
if [ ! -p /home/studinf/$server_home/tmp/serwerfifo ]
then
  echo "Błąd połączenia"
fi
if [ ! -p ~/tmp/klientfifo ]
then
  mkfifo ~/tmp/klientfifo
fi
#zapisuje dane do pliku
echo $HOME:$number > /home/studinf/$server_home/tmp/serwerfifo
wynik=`cat < ~/tmp/klientfifo`
#wyświetla obliczony wynik
echo "Wynik to: $wynik"

serwer.sh

#!/bin/bash
while true
do
#pobiera dane
  client_msg=`cat < ~/tmp/serwerfifo`
  IFS=":"
  tokeny=($client_msg)
  client_home=${tokeny[0]}
  number=${tokeny[1]}
#polecenie uruchamiające plik odpowiedzialny za obliczenie pewnej funkcji arytmetycznej
  ./reply.sh $number $client_home &
done
reply.sh
#!/bin/bash
number=$1
client_home=$2
# mnożenie wyniku oraz odejmowanie od niego liczby dwa np. 3*3 - 2
let wynik=number*number+2
#zapisuje wynik
echo $wynik > $client_home/tmp/klientfifo