• Shell条件测试练习


    1、取出/etc/passwd文件的第6行;

    [root@shell ~]# head -6 /etc/passwd | tail -1
    sync:x:5:0:sync:/sbin:/bin/sync
    [root@shell ~]# sed -n '6p' /etc/passwd
    sync:x:5:0:sync:/sbin:/bin/sync
    [root@shell ~]# awk 'NR==6' /etc/passwd
    sync:x:5:0:sync:/sbin:/bin/sync

    2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;使用cut、sort结合管道实现

    [root@shell ~]# cut -d ":" -f7 /etc/passwd | sort -u    #sort -u为排序并去重
    /bin/bash
    /bin/sync
    /sbin/halt
    /sbin/nologin
    /sbin/shutdown
    /usr/sbin/nologin

    3、如果/var/log/messages文件的行数大于100,就显示好大的文件

    [root@shell ~]# [[ `wc -l < /var/log/messages` >100 ]] && echo 好大的文件
    好大的文件

    wc -l /var/log/messages 会把文件名 /var/log/messages 一起进行输出;而 wc -l < /var/log/messages 则只会输出统计结果。wc -l < /var/log/messages 的输入来自文件 /var/log/messages,而不是来自标准输入,也就是键盘输入。

    4、显示/etc目录下所有以pa开头的文件,并统计其个数;

    [root@shell ~]# find /etc -type f -name "pa*" | wc -l
    11

    5、如果用户fox不存在就添加,否则显示用户已存在

    [root@shell ~]# id fox &>/dev/null && echo 用户已存在 || useradd fox
    [root@shell ~]# id fox &>/dev/null && echo 用户已存在 || useradd fox
    用户已存在

    6、编写一个 Shell 程序 mkf,此程序的功能是:显示 root 下的文件信息,然后建立一个 kk 的文件夹,在此文件夹下建立一个文件 aa,修改此文件的权限为可执行

    [root@shell ~]# vim mkf.sh +

    #!/bin/bash

    ls /root
    mkdir kk
    cd kk
    touch aa
    chmod +x aa

    [root@shell ~]# bash mkf.sh 
    2  aa  anaconda-ks.cfg    date.txt  mkf.sh
    [root@shell ~]# cd kk
    [root@shell kk]# ll
    总用量 0
    -rwxr-xr-x. 1 root root 0 11月 19 20:30 aa

    7、编写一个 Shell 程序 test3,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息

    root@shell ~]# vim test3.sh +

    read -p "请输入一个目录名:" dir_name
    ls -l ${dir_name}

    [root@shell ~]# bash test3.sh 
    请输入一个目录名:/etc/hosts
    -rw-r--r--. 1 root root 158  6月 23  2020 /etc/hosts
    [root@shell ~]# bash test3.sh 
    请输入一个目录名:/etc/passwd
    -rw-r--r--. 1 root root 2176 11月 19 20:20 /etc/passwd
     

    8、编写一个 Shell 程序 test4,从键盘读入 x、y 的值,然后做加法运算,最后输出结果

    [root@shell ~]# vim test4.sh +

    read -p "请输入两个数:" a b
    echo $[a+b]

    [root@shell ~]# bash test4.sh 
    请输入两个数:1 2  
    3

  • 相关阅读:
    windows vscode搭建CPP环境
    Java日期时间处理详解
    2┃音视频直播系统之浏览器中通过 WebRTC 拍照片加滤镜并保存
    uniapp实现表格冻结
    ChatGPT降温背后:大模型发展迎来真正转折点?
    HotSpot垃圾算法实现之记忆集与卡表和写屏障
    Python数据攻略-Mongodb数仓无法写入方法汇总
    element 周选择器el-date-picker
    9_Vue事件修饰符
    【Promise】一文带你了解promise并解决回调地狱
  • 原文地址:https://blog.csdn.net/weixin_72583321/article/details/134494426