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

Popular posts from this blog

ruby - When to use an ORM (Sequel, Datamapper, AR, etc.) vs. pure SQL for querying -

php - PHPDoc: @return void necessary? -

c++ - Convert big endian to little endian when reading from a binary file -