bash - have to determine all users home directories - tilde scripting problem -
assume someuser has home directory /home/someuser
name=someuser
in bash - expression use combining tilde (~) , $name return users home directory?
homedirectory=~someuser echo $homedirectory /home/someuser name=someuser echo ~$name ~someuser
any suggestions?
safer:
eval homedirectory="$(printf "~%q" "$name")"
here %q
option printf
quotes , escapes dangerous characters.
if $name
joe, you'd /home/joe
. root, might /root
. "abc;rm something" you'd "~abc;rm something" instead of having removed.
Comments
Post a Comment