Linux-for name in $(cut -d : -f 1 /ect/passwd)

关于for name in $(cut -d : -f 1 /ect/passwd)

Linux-for name in $(cut -d : -f 1 /ect/passwd)_第1张图片
注:$NAME是linux的静态变量,里面存放着用户在调试时自己输入的用户名
程序的功能是找出linux系统下有无相关查询的用户

  • 首先从语句的方面进行分析:
    Linux-for name in $(cut -d : -f 1 /ect/passwd)_第2张图片
    点击查看图片来源
    依据上图:
    for循环当中的name是自定义的一个变量,in后面的[word,…]实际上是一个列表,用于存储数据,
    根据所查资料表明,列表中的每个值都会设置到name变量当中,所以可以理解为$符号后面的列表中存放的是name的值,或者可以理解为会得到一个以name为数组名/列表名的数组/列表
    同时关注一些语法方面的问题,如果省略语句中的in,for语句会为每一个被设置的参数执行一次list,这里的list指的是程序段的意思。
    语句的返回值就是最后一次执行list程序并且退出时候的值。
    如果in后面的列表是空的话,没有任何的命令/list会被执行,返回值是0

  • 其次分析列表中的元素
    cut -d : -f 1 \etc\passwd

    • cut
      命令行输入man cut,得到说明:
      Linux-for name in $(cut -d : -f 1 /ect/passwd)_第3张图片
      操作手册说明cut命令用来从文件当中进行摘录,也就是截取文件的一部分被内容,cut是以行为单位进行操作的,也列出了-d、-f的用法:
      -d(delimiter):指定分隔符,当作在文件中进行截取的边界
      -f(field):指定在要截取的区域
      section1:section2
      -d : -f 1
      表明定义的分隔符是冒号
      -f 1表示最后要截取的就是section1
  • 最后联系图一的代码
    首先指定了要截取的文件是 /etc/passwd
    cd /ect
    cat passwd
    Linux-for name in $(cut -d : -f 1 /ect/passwd)_第4张图片
    上图是passwd文件当中的内容,用冒号作为定界符易分隔
    所以每行第一个位置的user就会被提取出来,放入list当中
    然后就会执行循环体,user列表当中找到满足条件的元素并输出最终结束

你可能感兴趣的:(linux)