Still dipping my toes in bash coding and trying to crate a 1 liner alias to:
stat -c '%a - %n' *
stat -c '%a - %n' <parameter>
I've gotten this far with 2 different versions, but they both result in the same thing; WITH a parameter added it works fine; without a parameter it isn't getting the *
added and the command says it requires a parameter. So for some reason the "if true" part is not filling the $a
var, but the "else" part does fill it.
alias perms="a=$(if [ -z '$@' ]; then *; else $@; fi) stat -c '%a - %n' $a"
alias perms="a=$([[ -z '$1' ]] && '*' || $1) stat -c '%a - %n' $a"
This should be a function. (Most things people try to use aliases for should be functions.)
perms () {
if [ $# -eq 0 ]; then
stat -c '%a -%n' *
else
stat -c '%a - %n' "$@"
fi
}