Avatar billede jkjaers Nybegynder
24. november 2002 - 14:48 Der er 8 kommentarer og
1 løsning

Find sidste bruger og aflæs wærdi

Jeg har brug for at kunne finde den sidste bruger i passwd filen.

eks:
lars:x:501:501:lars:/home/lars:/bin/bash

Herefter skal jeg kunne aflæse navn samt UID (i dette tilfælde lars (1) og 501 (3)

Hvordan gøres det lettest?
Avatar billede oz2kas Nybegynder
24. november 2002 - 14:56 #1
# tail -n 1 /etc/passwd
Avatar billede jkjaers Nybegynder
24. november 2002 - 15:00 #2
Det finder den sidste, men vi skal have aflæst UID (efter 2. : )
Avatar billede oz2kas Nybegynder
24. november 2002 - 15:38 #3
efter 2?
UID kan du jo greppe.
Avatar billede jkjaers Nybegynder
24. november 2002 - 15:49 #4
Vi ved ikke hvilket nr det drejer sig om.

Vi skal finde UID i sidste linie for at kunne tilføje UID+1 til den næste bruger
Avatar billede oz2kas Nybegynder
24. november 2002 - 16:39 #5
ja.
det kan jeg så ikke finde ud af.
jeg vil gå ud fra at du med noget perlscript kan addere 1 til den værdi UID har.
jeg kan dog ikke finde ud af perlscript.
Avatar billede jkjaers Nybegynder
24. november 2002 - 16:50 #6
Vi har lavet et awk script der finder værdien.

finduid:

BEGIN { FS ":" }
NR==1 { uid = $3 }

Dette awk script finder ID'et som ligger som 3. oplysning sepereret med kolon i en fil (eneste linie i filen). ID'et sætter den i variablen uid.

Dette awk script kaldes fra et shell-script, og skal returnere uid værdien med tilbage (eller skrive den til en ny fil). Hvordan får man den til det???
Avatar billede htm Nybegynder
24. november 2002 - 19:26 #7
Prøv denne:
tail -n 1 /etc/passwd | cut -d ':' -f1,3

Den trækker info ud af den sidste linie og udskriver felt 1 og 3 som er sepereret af : !
Prøv også at lav et manualopslag man cut
Avatar billede htm Nybegynder
24. november 2002 - 19:27 #8
hvis du kun skal have UID skal du skrive
tail -n 1 /etc/passwd | cut -d ':' -f3
Avatar billede jkjaers Nybegynder
24. november 2002 - 20:57 #9
OK koden ser sådan ud indtil videre

echo | tail -n 1 /etc/passwd | cut -d ":" -f3 > lastuid
grep [0-9] lastuid > uid
echo $uid

Det er her uid ikke har nogen værdi.
skriver man blot:

grep [0-9] lastuid

returneres den rigtige værdi. Men når jeg forsøger at lægge den i variablen uid kommer den ikke med.

Planen er som tidligere nævnt at fange variablen (tal) og lægge 1 til værdien
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester