User Tools

Site Tools


sysadminery:bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
sysadminery:bash [2025/05/06 15:32] adamsysadminery:bash [2025/10/23 07:05] (current) – external edit 127.0.0.1
Line 43: Line 43:
  
 you can use named capture groups, but you have to do ''\1'', etc. And then the console will bitch at you that you should have done ''$1'', but ''$1'' doesn't work. you can use named capture groups, but you have to do ''\1'', etc. And then the console will bitch at you that you should have done ''$1'', but ''$1'' doesn't work.
 +
 +=== achieve transcendant enlightenment ===
 +
 +<code bash>
 +    curl arg.rip/beefhaving
 +</code>
 +
 +"wow, that was perfect for me, now all of my problems have been solved forever" - a customer
 +
 +=== what is going on with my variables ===
 +
 +watch this.
 +<code bash>
 +echo "# phase 5: blah blah blah"
 +
 +goodreads=0
 +badreads=0
 +
 +find "ocr" -iname "*.txt" -print0 | while read -d $'\0' file
 +do
 +
 +    n=$(grep -Poh "(?<=N)[0-9]{2}\\.[0-9]+" "$file")
 +    w=$(grep -Poh "(?<=W)[0-9]{2}\\.[0-9]+" "$file")
 +
 +    if [ -n "$n" ] && [ -n "$w" ]; then
 +        goodreads=$(($goodreads+1))
 +        echo "$filename was OCR'd well; $goodreads good so far"
 +    else
 +        badreads=$(($badreads+1))
 +        echo "$filename is not perfect; $badreads bad so far"
 +    fi
 +done
 +
 +echo "$goodreads good, $badreads bad."
 +</code>
 +
 +it resets them to 0 after the loop. This is because bash uses dyanmic scope. https://en.wikipedia.org/wiki/Scope_(computer_science)#Dynamic_scope dynamic scope is stupid, the correct implementation is lexical scope.
 +
 +so how do we force bash to operate correctly, with lexical scope? according to the internet, you use `local`. doesn't work.
 +once you do that, the subscope doesn't just work with its own copy, it annihilates yours! there's also declare, doesn't work. Export is for sub processes, but again that doesn't send back up.
sysadminery/bash.txt · Last modified: (external edit)