shell脚本实现拷贝,重命名,显示系统时间,显示主机硬件信息功能

创建两个文件夹1,2
1文件夹里面含有两个文件a.txt和b.txt
2文件夹里面含有两个文件a.txt和b.txt
(a.txt文件内容是学号,b.txt文件内容是姓名)

功能:在菜单里面输入1:拷贝功能。会出现两个选项,1:将文件夹1中文件a拷贝至b中(不覆盖),2:将文件夹2中文件a拷贝至b中(覆盖)
显示:覆盖:Overwrite successful
不覆盖:copy successful
菜单输入2:修改文件功能。更改文件夹1中文件a.txt名字修改为arename.txt并将内容修改为operating system
显示:rename successful
菜单输入3:获取系统时间
菜单输入4:获取主机硬件信息:CPU颗数,CPU核心数量,内存,硬盘块数和大小
菜单输入5:退出

#!/bin/bash
#exam02
copy(){
    
    
cat<<EOF
---------------------------
--         copy          --
--  1.Overwrite   2.copy --
---------------------------
EOF

read -p "Input your choice:" cc

case $cc in
  1)
    cat ~/1/a.txt >> ~/1/b.txt     
    if [ $? -eq 0 ]
    then
      echo "Overwrite successful!"
    fi
  ;;
  2)
    cp ~/1/a.txt  ~/1/b.txt  
    if [ $? -eq 0 ]
    then
      echo "copy successful!"
    fi
  ;;
  esac
}

rename(){
    
    
  mv ~/1/a.txt  ~/1/arename.txt
  echo "operating system" > ~/1/arename.txt 
  if [ $? -eq 0 ]
  then 
    echo "rename successful!"
  fi
}

showTime(){
    
    
  echo "The time is:"
  echo `date`
}

showInfo(){
    
    
  echo "The number of cpu is:"
  echo `cat /proc/cpuinfo | grep "physical id" | uniq | wc -l`
  echo `cat /proc/cpuinfo | grep "cpu cores"`
  echo "memory size:"
  echo `cat /proc/meminfo | grep MemTotal`
  echo "the number of disk:"
  echo `lsblk | grep "sd[a-z] " | wc -l`
}

menu(){
    
    
  case $choice in
  1)
    copy
  ;;
  2)
    rename
  ;;
  3)
    showTime
  ;;
  4)
    showInfo
  ;;
  5)
    exit 0 
  ;;
  esac
} 

while :
do
cat<<EOF
-----------------------------------------
--                MENU                 --
--  1.copy       2.rename              --
--  3.time       4.hardware information--
--               5.exit                --
-----------------------------------------
EOF

  read -p "Input your choice:" choice
  menu
done

Guess you like

Origin blog.csdn.net/weixin_43790779/article/details/109259796