have to determine all users home directories - tilde scripting problem
问题 Assume someuser has a home directory /home/someuser NAME=someuser In bash - what expression to I use combining tilde (~) and $NAME to return the users home directory? HOMEDIRECTORY=~someuser echo $HOMEDIRECTORY /home/someuser NAME=someuser echo ~$NAME ~someuser any suggestions? 回答1: Safer : eval HOMEDIRECTORY="$(printf "~%q" "$NAME")" Here the %q option to printf quotes and escapes dangerous characters. If $NAME is joe, you'd get something like /home/joe . For root, you might get /root . For