3 ms·
and in the last example he given, i think you don't have to wrap things in quotation marks if alias done like this: alias lsr='find . -name $1'
by iLemming 11y ago
and in the last example he given, i think you don't have to wrap things in quotation marks if alias done like this:
alias lsr='find . -name $1'
- jstimpfle 11y agoThat doesn't work the way you think. Aliases don't receive arguments. The $1 will be expanded to the first positional argument of the surrounding environment when you call the alias -- not the first argument of the alias invocation.
- pdkl95 11y agoAs jstimpfle mentioned, that doesn't work, which is why the argument is left off the alias. In general, you can do that in a function instead of an alias: lsr() { find . -name "$1" } Wrapping variable expansion with double quotes is a good habit, so spaces are handled properly. Also, if you are using a modern-ish bash, you almost always want to use "$@" when there could be multiple arguments. The double-quoted @ special variable is guaranteed to always expand as multiple args, but with spaces handled correctly: foo() { bar --quux=42 "$@" } foo "a b c" "Spaces in my filename.txt"