Visa obesvarade inlägg | Visa aktiva trådar Aktuellt datum och tid: 22 nov 2017, 06:21



Svara på tråd  [ 7 inlägg ] 
 bash script 
Författare Meddelande

Blev medlem: 10 nov 2016, 10:39
Inlägg: 9
OS: Ubuntu
Utgåva: 17.04 Zesty Zapus
Svara med citat
Inlägg bash script  Tråden är löst
Hej! jag håller på lära mig bash script.

Jag har en uppgift där jag ska skapa ett script som kontrollerar om en viss person är inloggad på systemet.Användaren ska i första hand kunna skickas med som argument till skriptet. Anges inget argument med ska användaren efterfrågas av skriptet.
Om användaren är inloggad ska skriptet returnera 0, annars returneras 1.
OBS! 0 eller 1 ska returneras till det anropande skalet, INTE skrivas ut. Använd exit och inte echo. Testa svaret med att kolla vad variabeln $? har för värde.

har försökt mig fram men kommer inte på någon bra lösning.. någon som kan hjälpa mig?



mvh


10 nov 2016, 10:45
Profil
Användarvisningsbild

Blev medlem: 08 aug 2010, 12:49
Inlägg: 2328
Ort: Göteborg
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Svara med citat
Inlägg Re: bash script
Visa gärna ditt bästa försök hittills, så kanske någon kan hjälpa dig få till det.


10 nov 2016, 11:05
Profil

Blev medlem: 10 nov 2016, 10:39
Inlägg: 9
OS: Ubuntu
Utgåva: 17.04 Zesty Zapus
Svara med citat
Inlägg Re: bash script
det har du rätt i!


#!/bin/bash

read -p "enter a user" username

grep -iq $username /etc/passwd

exit $?

jag har helt fastnat och känner att jag inte kommer någonstans.. någon som kan bra länkar för bash script osv eller hjälpa mig att förstå uppgiften..

mvh


10 nov 2016, 12:19
Profil
Användarvisningsbild

Blev medlem: 08 aug 2010, 12:49
Inlägg: 2328
Ort: Göteborg
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Svara med citat
Inlägg Re: bash script
Inte mycket research där, va?

$ cat inloggad.sh
#!/bin/bash
TRY=$1
test -n "$TRY" || {
echo "Ange användare att kolla"
read TRY
}
for U in $(users); do
test "$U" = "$TRY" && exit 0
done
exit 1
$ ./inloggad.sh gunnar
$ echo $?
0
$


10 nov 2016, 13:30
Profil

Blev medlem: 10 nov 2016, 10:39
Inlägg: 9
OS: Ubuntu
Utgåva: 17.04 Zesty Zapus
Svara med citat
Inlägg Re: bash script
Såhär ser det ut nu

read -p "Enter a user: "

if (grep -iq "$REPLY" /etc/passwd > /dev/null) ; exit $?
then
echo "$REPLY finns i systemet

exit 1


sen när jag testar användare genom att skriva

echo $?
så får jag 0 om user finns och 1 om den inte finns


funkar det lika bra?


10 nov 2016, 14:07
Profil
Användarvisningsbild

Blev medlem: 08 aug 2010, 12:49
Inlägg: 2328
Ort: Göteborg
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Svara med citat
Inlägg Re: bash script
Nej. Av flera skäl. Förutom att det du skrev ovan inte är ett fungerande skript, så avviker det från uppgiften på flera punkter.

  • Att greppa /etc/passwd hjälper dig inte att se om en användare är inloggad. (Dessutom greppar du över hela innehållet i filen...)
  • Ingen möjlighet att ange användaren som argument.
  • Du skall skriva exit 0 om användaren hittas, inte exit $?.


10 nov 2016, 15:07
Profil

Blev medlem: 10 nov 2016, 10:39
Inlägg: 9
OS: Ubuntu
Utgåva: 17.04 Zesty Zapus
Svara med citat
Inlägg Re: bash script
okej! ska kolla på det, tusen tack för hjälpen iaf! (y)


10 nov 2016, 16:17
Profil
Visa inlägg nyare än:  Sortera efter  
Svara på tråd   [ 7 inlägg ] 

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
Main Engineer for phpBB3: Bertie at phpBB.com © 2000 - 2002, 2005 - 2007, the Group behind the Open Source code of phpBB.
Designed by STSoftware, modified by Katt, Konservburk & Peetra. Swedish translation by Peetra & phpBB Sweden © 2006-2011