慕哥2296688
查了一下, = 和==的作用一样,只要=左右有空格即可。自己试了一下也确实是这样
公鸡喔喔喔
user 包含匹配 输出两个结果;要想输出一个 用界定符 "\bUSER\b"
慕斯6397093
因为grep用的是正则表达式,正则表达式是包含匹配(不同于通配符的完全匹配),因为在你的 PROMPT_COMMAND 这一个env里面也包含有 USER ,所以在使用 env | grep USER 的时候,两个都会列出来。
可以试一试
env | grep "USER="
安静的学者
-d参数,用 = 号把 USER=root拆开, 得到USER 和root 两个值, 然后用-f 选项选择第2个单元得到root
慕粉4040318
whoami 命令欺骗
su - 就好了
沐小奕
是在程序中切换还是在命令中
命令中您说的这种现象是不存在的
程序中注意当前的用户
星海晶翡
判断登录是否root 用户啊
未名公子
你可以不用env检测环境变量来检测user。你完全可以用whoami
多条的话,可以通过正则和通配符过滤
小刚l
谢谢~
回眸一笑百贱生
问题描述不清,很令人头疼。提到的root权限是说root用户吧?
小辉_0004
受用!
吴余
一看弄错了,糗。。。不过user和test我都定义变量了。
EpisodeOne
你自己分别执行这几个命令,看看结果就能明白了。
env是输出环境变量的命令,每个环境变量占一行,其中叫USER的环境变量中保存的就是用户名,输出的形式是 USER=用户名
grep命令用来将这一行提取出来。
cut命令能够按指定的分隔符来分割一行字符,-d 指定分隔符(你哪里觉得它是判断文件的??又不是test语句!),-f 指定要输出哪一段字符。很显然环境变量格式就是由=分割的两段字符串,所以 cut -d "=" -f 2 输出的就是=后面的部分,也就是实际用户名。
以上这三个命令用管道相连,共同完成任务。
jabari
你在管道符第二条命令grep查找字符串的时候,多了一个空格。所以没有查到USER加上空格的行。
如图
