4 ms·
Beware that using "$@" there might not be what you want, as it passes space-separated arguments to mkdir. What does: "mkd foo bar" do? It creates both director
by mfontani 5y ago
Beware that using "$@" there might not be what you want, as it passes space-separated arguments to mkdir.
What does: "mkd foo bar" do? It creates both directories, and cd's into "bar".
Might be worth checking that only one argument has been passed, or use "$*" which instead would treat all arguments as one parameter, and "mkd foo bar" would create a "foo bar" directory instead (and cd to it)
YMMV.
- dvfjsdhgfv 5y agoAll Bash manuals and tutorials should start from explaining this issue. And I really mean it. I can't remember how many times I was bitten by it until I finally read it up.
- samus 5y agoI still have to read it up from time to time even though I know it already. The difference is huge.
- mfontani 5y agoI feel one should also install shellcheck, and follow it religiously while looking up every warning they get - to understand what it's about, why it's a problem, and why the solution / "correct" incantation is so. It's also a good way to "learn by doing", which works for many.
- W0lf 5y agoThanks a lot for pointing this out. I will happily fix this now!