课程
/运维&测试
/Linux
/shell编程之条件判断与流程控制
test=$(env | grep "USER" | cut -d "=" -f 2)
2015-07-15
源自:shell编程之条件判断与流程控制 2-2
正在回答
你自己分别执行这几个命令,看看结果就能明白了。
env是输出环境变量的命令,每个环境变量占一行,其中叫USER的环境变量中保存的就是用户名,输出的形式是 USER=用户名
grep命令用来将这一行提取出来。
cut命令能够按指定的分隔符来分割一行字符,-d 指定分隔符(你哪里觉得它是判断文件的??又不是test语句!),-f 指定要输出哪一段字符。很显然环境变量格式就是由=分割的两段字符串,所以 cut -d "=" -f 2 输出的就是=后面的部分,也就是实际用户名。
以上这三个命令用管道相连,共同完成任务。
EpisodeOne 提问者
此-f非彼-f。一个是在test命令中,一个是在grep命令中,意义完全不同。
#!/bin/bash
if [ $1=="redhat" ]
than
echo fedora
elif [ $1 =="fedora" ]
echo "redhat"
else
echo "please input again!"
cut是切割命令,参数-d表示按什么划分,参数-f表示截取哪些字段。
eg :env | grep "USER" 执行结果为:root=root
cut -d "=" -f 2 表示将其=号作为分隔符,选取其第2个字段,所有就是root
举报
Linux shell实用案例学习,一定会使你Linux运维能力再次提高
2 回答cut是什么时候讲的?
1 回答请问test=$( env | grep "uSER" | cut -d "=" -f 2)
2 回答我用软链接测试 -ef命令 返回的也是yes。请问是什么原因
2 回答[ -e /root/install(是一个不存在的文件) ] | echo $? 为什么输出0
1 回答为什么的我的目录下没有glllll,可是使用test -e和查看指令,结果是yes???