问答详情
源自:2-2 shell单分支if语句

cut -d "=" -f 2中的cut 是列提取命令,-d是判断文件是否存在的命令,整体是什么意思,是怎么确定当前目录是root的????

test=$(env | grep "USER" | cut -d "=" -f 2)

提问者:EpisodeOne 2015-07-15 19:16

个回答

  • onemoo
    2015-07-15 23:32:14
    已采纳

    你自己分别执行这几个命令,看看结果就能明白了。

    env是输出环境变量的命令,每个环境变量占一行,其中叫USER的环境变量中保存的就是用户名,输出的形式是 USER=用户名

    grep命令用来将这一行提取出来。

    cut命令能够按指定的分隔符来分割一行字符,-d 指定分隔符(你哪里觉得它是判断文件的??又不是test语句!),-f 指定要输出哪一段字符。很显然环境变量格式就是由=分割的两段字符串,所以 cut -d "=" -f 2 输出的就是=后面的部分,也就是实际用户名。

    以上这三个命令用管道相连,共同完成任务。

  • 慕粉1720382552
    2017-07-12 00:26:47

    此-f非彼-f。一个是在test命令中,一个是在grep命令中,意义完全不同。

  • qq_呆到深处自然萌__0
    2017-06-25 17:28:58


    #!/bin/bash

    if [ $1=="redhat" ]

    than

    echo fedora

    elif [ $1 =="fedora" ]

    echo "redhat"

    else

    echo "please input again!"

  • 裙子树
    2016-04-27 17:28:06

    cut是切割命令,参数-d表示按什么划分,参数-f表示截取哪些字段。 

    eg :env | grep "USER"     执行结果为:root=root

    cut -d "=" -f 2   表示将其=号作为分隔符,选取其第2个字段,所有就是root