iar*_*oot 5 bash tilde-expansion
假设someuser有一个主目录/ home/someuser
NAME = SomeUser的
在bash中 - 我用什么表达式组合使用tilde(〜)和$ NAME来返回用户主目录?
HOMEDIRECTORY=~someuser
echo $HOMEDIRECTORY
/home/someuser
NAME=someuser
echo ~$NAME
~someuser
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Pau*_*ce. 16
更安全:
eval HOMEDIRECTORY="$(printf "~%q" "$NAME")"
Run Code Online (Sandbox Code Playgroud)
这里引用和转义危险字符的%q选项printf.
如果$NAME是乔,你会得到类似的东西/home/joe.对于root,你可能会得到/root.对于"abc; rm something"你会得到"〜abc; rm something"而不是删除某些东西.
一种替代方法
awk -F":" '{print "user: "$1", Home directory is: "$6}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4586 次 |
| 最近记录: |