Hacker News new | ask | show | jobs
by hawski 800 days ago
I would suggest not to mess with the current working directory and instead do something like this:

  for project in go-cicd/*; do
    project="${project#*/}"
1 comments

Indeed, thank you for mentioning that - I was going to suggest similar.

That said, if you do (ie: scratch files, things outside of control, whatever), consider the directory stack:

https://www.gnu.org/software/bash/manual/html_node/Directory...

Using 'pushd' and 'popd' can save your fingers/brain from getting lost in context.

I like using subshells for this:

  (
      cd dir
      for f in ./*; [..]
  )
There's a few scenarios where this won't work (mainly if you want to set a variable from the "outer scope"), but 99% of the time it works nicely.
Ah, that's a nice/neat thought - thank you for sharing! Makes total sense, temporary/disposable shell for such things