• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af z4ndx | 07.01.2012 20:08

Bash - while hjælp

Hjælp generelt
Go aften.. Jeg kunne godt lige bruge en hjælpende hånd.

Jeg bikser med et script. Og i det script, laver man en htaccess user, med tilhørende bruger. Så ledes:


echo "Please Type the password for the user: "
htpasswd -c /var/www/rutorrent/.htpasswd "$htauser"


Efter dette skal man skrive pass. Jeg kunne virkelig godt tænke mig at, hvis man skrev forkert i pass, at den loopede, så den kørte commanden igen, istedet for at faile og forsætte med scriptet.

Nu har jeg bruge en del tid på google, men opgiver.
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer6

# 1

14 år siden

Permalink

Indsendt af Marcus den 7. januar 2012 kl. 20:42

Permalink

Nu har jeg aldrig selv rodet

Nu har jeg aldrig selv rodet med htpasswd, men hvad er output fra htpasswd hvis kodeordet er forkert?

EDIT:
Du kan prøve noget i stil med:


#!/bin/bash
while true; do
echo "Please Type the password for the user: "
read input
output=$(htpasswd -c /var/www/rutorrent/.htpasswd "$input")
if [ "$output" = "TEKSTOUTPUT HVIS KODE ER RIGTIG" ]; then
break
else
echo "Wrong password, try again"
fi
done
  • Log ind eller opret dig for at tilføje kommentarer

# 2

14 år siden

Permalink

Indsendt af z4ndx den 7. januar 2012 kl. 21:50

Permalink

Naej.. Det virker ikke

Naej.. Det virker ikke rigtig :) ..
  • Log ind eller opret dig for at tilføje kommentarer

# 3

14 år siden

Permalink

Indsendt af Tukanfan den 7. januar 2012 kl. 21:54

Permalink

HejHvad med at bruge "$?"

Hej
Hvad med at bruge "$?" som er lig den sidst udfoerte kommandos exit code?
Hvis denne er forskellig fra 0, ved man saa, om htpasswd afsluttede med fejl (f.eks. at koderne ikke var ens). Ved modificering af Marcus' script:

#!/bin/bash
while true; do
echo "Please Type the password for the user: "
htpasswd -c /var/www/rutorrent/.htpasswd "$htauser"
if [ $? = 0 ]; then
break
fi
done

Det ser maaske lidt dumt ud at der bliver spurgt om password baade af scriptet selv samt htpasswd, saa maaske kan linjen

echo "Please Type the password for the user: "

udelades.
Bemaerk ogsaa, at htpasswd tillader brugeren at specificere et tomt password.
PS. Jeg gaar ud fra at variablen htauser er udfyldt i forvejen.
  • Log ind eller opret dig for at tilføje kommentarer

# 4

14 år siden

Permalink

Indsendt af z4ndx den 7. januar 2012 kl. 22:21

Permalink

Tju hej hvor det fungere :)

Tju hej hvor det fungere :) .. Også har jeg lært at bruge $? idag. Fantastisk :)

Men hvorfor er 2 korrekte passwd's output = 0 ? Det forstår jeg ikke.
  • Log ind eller opret dig for at tilføje kommentarer

# 5

14 år siden

Permalink

Indsendt af Tukanfan den 7. januar 2012 kl. 22:27

Permalink

Det var da godt :)
Det er

Det var da godt :)
Det er heller ikke programmets output men dens exit-code.
Der er consensus om, at naar et program har afsluttet successfuldt, skal den altid returnere exit-code 0. Skulle der derimod ske fejl, returnerer programmet en anden exit-code. Her staar det programmoeren frit for at vaelge hvilken kode der repraesenterer hvilke fejl. Nogen gange staar der i programmets manual hvad de forskellige koder betyder. Men 0 er altid lig success.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

14 år siden

Permalink

Indsendt af z4ndx den 7. januar 2012 kl. 22:51

Permalink

Cool.. Lige en ting mere..

Cool..

Edit: Never mind.. Jeg havde "set -e" i starten af mit script. Det var årsagen. :)

Mange tak for hjælpen.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0
Dansk distro Omarchy 0
KDE overgår indsamlingsmålet for 2025 med rekordstor støtte fra lokalsamfundet 0

Seneste aktivitet

rsync og filsystem 2
Debian 13.3.0 8
E-mail blues 7
BigLinux 1
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10
billede af nuværende installation 2
mapper 4
LinuxIn live 9
Linux Debian på ekstern HD 4
usb disk *LØST* 2
Pacman kunne erstattes af en anden Rust baseret mulighed 1
Epson skanner software 8
Debian 1
Printer Epson ET-2865 problem 8
Winboat 4
Nu kan man skrive private beskeder 14
Mint på imac 2009 34
Firefox AI 7
Kunstig inteligens 6

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !