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