必须确定所有用户的主目录 - 波浪脚本问题 [英] have to determine all users home directories - tilde scripting problem

查看:126
本文介绍了必须确定所有用户的主目录 - 波浪脚本问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设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.

这篇关于必须确定所有用户的主目录 - 波浪脚本问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆