本文介绍了必须确定所有用户的主目录 - 波浪脚本问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设SomeUser是否有一个家目录为/ home / SomeUser的
Assume someuser has a home directory /home/someuser
NAME = SomeUser的
NAME=someuser
在bash中 - 什么EX pression到我结合使用符号(〜)和$ name返回用户的主目录
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
有什么建议?
推荐答案
更安全
eval HOMEDIRECTORY="$(printf "~%q" "$NAME")"
下面的%Q
选项的printf
报价和逃脱危险字符。
Here the %q
option to printf
quotes and escapes dangerous characters.
如果 $ NAME
是乔,你会得到类似 /家庭/乔
。对于root用户,你可能会得到 /根
。对于ABC; RM东西,你会得到〜ABC; RM的东西。而不必去掉的东西。
If $NAME
is joe, you'd get something like /home/joe
. For root, you might get /root
. For "abc;rm something" you'd get "~abc;rm something" instead of having something removed.
这篇关于必须确定所有用户的主目录 - 波浪脚本问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!