script

Murat ARSLAN (arslanm@rorqual.cc.metu.edu.tr)
Wed, 16 Oct 1996 11:09:42 +0400 (MEDT)


Merhaba,

Bana bir shell yada perl script lazim. $Oyle ki:

1-) Login esnasinda eGer ba$ka login var ise diger login(ler)e mesaj
aticak. <STDIN> 'den okudugu mesaji..

2-) Ayni location'dan iki login'den fazlasina izin vermiycek vs..

Ben kendi capimda birseyler karalamaya calistim.. Az bucuk basardim da,.

Ama eger diger loginler 1'den buyuk oldugu zaman o loginlerin
device'larina mesaj attirmayi beceremedim..

Mesela /dev/pts1 ve /dev/pts3'e .. grep ve awk 'larla calisan bir script
yazmistim..Haliyle cikti soyle oluyor..

pts/1
pts/2

bunlari ayarlayinca da pts/1 pts/2 oluyor o variable.. perl'deki split ile
yapilabilir mi diye dusundum.. ama bu sefer de benim device'la
karsilastirma yapilicak.. grep -v isi gorur dedim.. gene olmadi..

PS: Bu scripti yazmaktaki amacim, hem Shell scriptingi ogrenmek hemde
ihtiyactan dolayi..Makina AIX..

iste script ornegi:

#!/bin/sh
# Prompt for yes or no answer - returns non-zero for no
_prompter()
{
while echo "$* (Y/N) ">&2
do read yn rest
case $yn in
[yY]) return 0 ;;
[nN]) return 1 ;;
*) echo "Please answer y or n" >&2 ;;
esac
done
}

_soru()
{
local ID
local ADET
local MYDEV
local DEVICES
local OTDEV
local WHERE
local MYWHERE
local OTHERTTY
MYDEV=`/bin/ps x | grep ps | awk '{print $2}' | uniq`
ID=`whoami`
DEVICES=`/bin/w $ID | /usr/bin/grep $ID | cut -c 10-15`
MYWHERE=`/usr/bin/last $ID | /usr/bin/grep still | /usr/bin/grep "$MYDEV" | awk '{print $3}' | uniq`
WHERE=`/usr/bin/last $ID | /usr/bin/grep still | /usr/bin/cut -c 20-39 | uniq`
ADET=`/bin/w $ID | /usr/bin/grep $ID | /bin/wc -l`
OTDEV=`/bin/w $ID | /usr/bin/grep $ID | /usr/bin/grep -v -w "$MYDEV" | awk '{print $2}'`
GONDER=`/bin/cat lale >/dev/$OTDEV`
if [ -z "$ID" ]
then
echo Who are you?
return
else
if [ $ADET = "1" ]
then
echo MyWelcome $ID \($ADET\) from $MYWHERE \($MYDEV\)
else
echo Welcome $ID \($ADET\) from $MYWHERE \($MYDEV\)
echo All logins are from: $WHERE
# echo Their devices are: $DEVICES
echo $GONDER
fi
fi
}

_gonder()
{
}

_soru

# _prompter "Want to send a message to your remaining sessions ?" && _gonder