[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GPG wachtwoord vergeten



On 20-06-13 09:23, Arjen Bax wrote:
> Goeie tip, ik heb zelf ook al eens iets dergelijks bij de hand gehad met
> een SSL-certificaat. Ik zou een paar kleine wijzigingen willen
> voorstellen. In plaats van
> 
>   for word in $(cat words.txt)
>   do
>     iets
>   done
> 
> zou ik het volgende schrijven:
> 
>   cat words.txt | while read word
>   do
>     iets
>   done
> 
> of
> 
>   while read word
>   do
>     iets
>   done < words.txt
> 
> (maar dat tweede is minder leesbaar.)

Is wel beter, omdat het geen subshell start. Bij je eerste voorbeeld kan
je geen variabelen aanpassen in je loop; bij het tweede is dat geen
probleem.

> Reden: met de originele oplossing kun je geen passwords met spaties erin
> opgeven. (Mijn oplossing staat geen wachtwoorden toe met linefeeds
> (ASCII 10) erin, wat IMO minder bezwaarlijk is.)

Toch, maar dan moet je de $IFS variabele instellen ("IFS" staat hierbij
voor "Input Field Separator"). Bijvoorbeeld:

IFS='|'
while read pw
do
  foo
done < words.txt

waarbij je bestand er dan als volgt kan uitzien:

foo|bar|wachtwoord met
linefeed en spaties in|wachtwoord zonder linefeed

-- 
This end should point toward the ground if you want to go to space.

If it starts pointing toward space you are having a bad problem and you
will not go to space today.

  -- http://xkcd.com/1133/


Reply to: