[ bata_258 @ 19.09.2009. 00:41 ] @

Bio bih zahvalan ako neko moze da mi pomogne.
Radi se o bash skriptu gde treba da pronadjem najveci broj u nizu od pet brojeva
Unapred zahvalan
Pokusavao sam sa
if [ "$2" -gt "$3" ]; then
if [ "$2" -gt "$4" ]; then
if [ "$2" -gt "$5" ]; then
if [ "$2" -gt "$6" ]
echo "$2"
else
if [ "$3" -gt "$4" ]; then
if [ "$3" -gt "$5" ]; then
if [ "$3" -gt "$6" ]
echo "$3"

else
if [ "$4" -gt "$5" ]; then
if [ "$4" -gt "$6" ]; then
echo "$4"
else
if [ "$5" -gt "$6" ]; then
echo "$5"
else
echo "$6"
fi
exit



[ uranium @ 19.09.2009. 15:03 ] @
Ako sledeći kod snimiš u fajl ( recimo kao max.sh ) i dodeliš mu exec. privilegije sa chmod u+x ./max.sh

Code:

#!/bin/bash

echo "$@" | tr '[:space:]' '\n' | sort -nr | head -1


onda to što tražiš možeš dobiti sa:


./max.sh 1 3 42 2 1
42
[ IcemanX @ 17.03.2010. 03:36 ] @
Upravo tako,kod Linuxa sve izvrsne datoteke po defaultu nemaju exec privilegije..moras sam da im dodelis i onda bi ovo koliko vidim trebalo da ti radi posao...moze se ako te zanima i drugacije da napravi da ne unosis parametre odmah pri pokretanju scripte "./max.sh 4 5 6 7 8" vec da to malo lici na programcic pa da te scripta pita za svaki clan niza posebno,i da na kraju proveri da li je unoseno tacno 2 parametra ako nije da ti vrati poruku ili da li su uneseni parametri brojevi ..dakle sve u zavisnosti od potrebe i zelje da imas bolju skriptu..ali licno znam da bash programiranje iako je na prvi pogled jako prosto nije nimalo jednostavno,,,zasto ??npr trebao sam na faxu za domaci zadatak da uradim neku scripticu i za jedan code koji 100% sam bio uveren da je dobar nije jednostavno hteo da mi radi..morao sam da uradim na drugi nacin..isti code sam kopirao na faxu na njihovim masinama koji su imali ubuntu preko VB-a i savrseno je radilo..takodje bash programiranje je jako osetljivo po pitanju gde pravis razmake a gde ne...zasto ??nikad nisam provalio...
[ ivanzj @ 16.10.2010. 03:40 ] @
imam jedan mali problem.
Naime, potrebno mi je ispisati sve prijavljene korisnike i vreme njihove poslednje odjave(log-out).
To sam nekako nasao, ali ne znam kako da taj pajp ubacim u for ili nesto slicno tome
Code:
 users=`w | tail -n +3 | cut -d ' ' -f 1 | sort -u ` 


Code:
logout=`last $users | head -2 | tail -1 | tr -s ' ' | cut -d ' ' -f9 ` 


Ako to moze uopste nekako da se spoji

poz i hvala
[ Jbyn4e @ 16.10.2010. 08:14 ] @
Code (bash):

for i in $users
do
logout=`last $i | ...`
echo $logout
done
 


Tako nekako... ali tako ces samo dobiti vreme, a ne i datum poslednjeg logovanja, npr:

Citat:

bash-3.2$ users=`w | tail -n +3 | cut -d ' ' -f 1 | sort -u`
bash-3.2$ for i in $users; do logout=`last $i | head -2 | tail -1 | tr -s ' ' | cut -d ' ' -f9`; echo $logout; done
09:32
bash-3.2$ last user
user pts/0 x.x.x.x Sat Oct 16 09:06 still logged in
user pts/0 x.x.x.x Thu Oct 14 09:29 - 09:32 (00:02)

[ ivanzj @ 17.10.2010. 02:19 ] @
Super. Hvala lepo
Prilazem i celu skriptu, mozda nekome bude od pomoci.
Dakle, ako se kao parametar -h stavi, ispisace se help, ako se stavi -c, ispisace broj prijavljenih korisnika, ako se upise bilo koji drugi parametar, ispisace "greska" a ako se ne stavi nikakav parametar, izlistace sve prijavljene korisnike i datum i vreme njihove poslednje odjave

Code:

function help {
        echo "help"
}
if [ $# -gt 0 ] ; then
        case $1 in
                -h) help;;
                -c) echo "broj prijavljenih korisnika:"
                        who | wc -l ;;
                *) echo "greska"
                     help;;
        esac
else
        echo -e "korisnik \t datum i vreme poslednje odjave"
        
        users=`w | tail -n +3 | cut -d ' ' -f 1 | sort -u `

        for i in $users
        do
                logout=`last $i | head -2 | tail -1 | tr -s ' ' | cut -d ' ' -f5 -f6 -f8 -f9 `
                echo -e "$i \t $logout"
        done
fi
echo "kraj"


Mozda jos jedna mala pomoc...
Koliko sam gledao manuale za who i wc, nisam video da oni imaju neki parametar, kao sto sort ima -u, tako da, ukoliko se neko prijavi sa vise terminala od jednom, nece ispisati broj korisnika, vec broj aktivnih terminala. Da li se to moze nekako resiti?

glupost
ovako sam to resio:
Code:

-c) echo ""
     count=`w | tail -n +3 | cut -d ' ' -f 1 | sort -u | wc -l`
     echo "broj prijavljenih korisnika je $count" ;;

trebalo bi da valja

[Ovu poruku je menjao ivanzj dana 17.10.2010. u 03:38 GMT+1]