DAY3,C高级(shell中的变量、数组、算术运算、分支结构)

news2024/12/22 20:52:22

1.今日思维导图;

2.判断家目录下,普通文件的个数和目录文件的个数;

  1 #!/bin/bash
  2 arr1=(`ls -la ~/ | cut -d 'r' -f 1 | grep -w '-'`)
  3 arr2=(`ls -la ~/ | cut -d 'r' -f 1 | grep -w 'd'`)
  4 echo "普通文件个数:${#arr1[*]}"
  5 echo "目录文件个数:${#arr2[*]}"
                                                                                                                                                                                              

3.输入一个文件名,判断是否为shell脚本文件,如果是脚本文件,判断是否有可执行权限,如果有可执行权限,运行文件,如果没有可执行权限,给文件添加可执行权限;

  1 #!/bin/bash
  2 read -p "输入文件名:" fname
  3 
  4 if [[ $fname == *".sh" ]]                                                                       
  5 then
  6     echo "是脚本文件"
  7     if [ -x $fname ]
  8     then
  9         bash $fname
 10     else
 11         sudo chmod a+x $fname
 12     fi
 13 
 14 else
 15     echo "不是脚本文件"
 16 fi

4.终端输入两文件名,判断哪一个文件更新;

  1 #!/bin/bash                                                                                     
  2 read -p "输入两个文件:" file1 file2
  3 
  4 if [ $file1 -nt $file2 ]
  5 then
  6     echo "$file1比$file2更新"
  7 else
  8     echo "$file2比$file1更新"
  9 fi

5.终端输入用户,判断用户是否存在,如果不存在,添加用户;

  1 #!/bin/bash                                                                                     
  2 read -p "输入用户:" user
  3 
  4 str=`grep -w $user /etc/passwd | cut -d : -f 1`
  5 
  6 if [[ $user != $str ]]
  7 then
  8     echo "用户不存在,创建---"
  9     sudo adduser $user
 10 else
 11     echo "用户存在"
 12 fi

6.输入学生成绩,判断等级,;A[100,90),B[90,80),C[80,70),D[70,60)

  1 #!/bin/bash                                                                                     
  2 read -p "输入学生成绩:" score
  3 
  4 if [ $score -ge 90 ]
  5 then
  6     echo "A"
  7 elif [ $score -ge 80 ]
  8 then
  9     echo "B"
 10 elif [ $score -ge 70 ]
 11 then
 12     echo "C"
 13 elif [ $score -ge 60 ]
 14 then
 15     echo "D"
 16 else
 17     echo "E"
 18 fi

7.写一个shell脚本,获取当前用户名,用户id和工作路径;

  1 #!/bin/bash                                                                                     
  2 user=`whoami`
  3 echo "用户名:$user"
  4 echo "用户id:`id -u $user`"
  5 echo "工作路径:`pwd`"

8.统计/etc目录下以P或p开头的文件个数;

  1 #!/bin/bash
  2 arr=(`ls /etc | grep -i "^p"`)
  3 
  4 echo ${arr[*]}
  5 echo "以P或p开头的文件个数:${#arr[*]}"                                                                                 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud深度学习(在更)

微服务简介 微服务是什么? 微服务是一种架构风格,将一个大型应用程序拆分为一组小型、自治的服务。每个服务都运行在自己独立的进程中,使用轻量级的通信机制(通常是HTTP或消息队列)进行相互之间的通信。这种方式使得…

Tensorrt 原生Activate 算子讲解

Tensorrt operators docs: Activation Apply an activation function on an input tensor A and produce an output tensor B with the same dimensions. import numpy as np from cuda import cudart import tensorrt as trt # 输入张量 NCHW nIn, cIn, hIn, wI…

【每日一题】—— B1. Palindrome Game (easy version)(Codeforces Round 721 (Div. 2))

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

Oracle-expdp报错ORA-39077、06502(Bug-16928674)

问题: 用户在使用expdp进程导出时,出现队列报错ORA-39077、ORA-06502 ORA-31626: job does not exist ORA-31638: cannot attach to job SYS_EXPORT_SCHEMA_01 for user SYS ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$…

React 核心开发者 Dan Abramov 宣布从 Meta 离职

导读React.js 核心开发者、Redux 作者 Dan Abramov 在社交平台发文宣布,将辞去在 Meta 的职务: “我感到苦乐参半,几周后我就要辞去 Meta 的工作了。在 Meta 的 React 组织工作是我的荣幸。感谢我过去和现在的同事接纳我,容忍我犯…

MySql的Windows安装指南

目录 一、MySQL的4大版本 二、软件的下载 三、MySQL8.0 版本的安装 四、配置MySQL8.0 五、配置MySQL8.0 环境变量 六、登录验证 一、MySQL的4大版本 MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持&#xff…

RIP Bram Moolenaar

Grateful for your work on Vim and for the impact Vim has had on the world. Thank you for everything, Bram.

原创 | 图神经网络在区块链交易数据分析研究中的应用

作者:王佳鑫本文约3000字,建议阅读6分钟区块链技术带来的重大变革,也对金融服务、生态安全、隐私保护提出了诸多挑战。 加密数字货币是数字货币的一种,它不依靠法定货币机构发行,不受央行管控。借助于区块链等新兴技术…

机器学习中的人生启示:“没有免费的午餐”定理(NFL)的个人发展之道→探讨感觉和身边其他人有差距怎么办?

文章目录 1 引言2 探究NFL定理的含义3 将NFL定理应用于个人发展4 探索个人兴趣和天赋5 结论 1 引言 机器学习中的“没有免费的午餐”定理(NFL)是一条深具启示意义的原则。该定理表明,没有一种算法可以在所有问题上都表现最好。在机器学习领域…

MyBatis核心 - SqlSession如何通过Mapper接口生成Mapper对象

书接上文 MyBatis – 执行流程 我们通过SqlSession获取到了UserMapper对象,代码如下: // 获取SqlSession对象 SqlSession sqlSession sqlSessionFactory.openSession();// 执行查询操作 try {// 获取映射器接口UserMapper userMapper sqlSession.get…

C语言----字节对齐

一:字节对齐的概念 针对字节对齐,百度百科的解释如下: 字节对齐是字节按照一定规则在空间上排列,字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数,在UTF-8编…

PS设计技巧01

大部分切图工作都是在PS中完成的 1、如何得知宽度和高度,先截个图: 2、找个文件夹,把截取的图片放进去,然后ctrl o 把图片文件放进去 3、存入图片,我们用的是网页图片,用的是ctrl r键,调出标尺…

记录电赛色块追踪部分

代码其实也很简单,我只不过加入了按键控制暂停、蜂鸣器、led和如何控制追踪的效果(调PID)。B站的那些大神早早地完成了要求,我犯了一个不好地错误,企图三连让他们分享思路,这是不对的,电赛本身的…

python之prettytable库的使用

文章目录 一 什么是prettytable二 prettytable的简单使用1. 添加表头2. 添加行3. 添加列4. 设置对齐方式4. 设置输出表格样式5. 自定义边框样式6. 其它功能 三 prettytable在实际中的使用 一 什么是prettytable prettytable是Python的一个第三方工具库,用于创建漂亮…

谷粒商城第九天-解决商品品牌问题以及前后端使用检验框架检验参数

目录 一、总述 二、商品分类问题 三、前端检验 四、后端检验 五、总结 一、总述 在完成完商品分类的时候,后来测试的时候还是发现了一些问题,现在将其进行解决,问题如下: 1. 取消显示的时候,如果取消了显示&…

Unity学习参考文档和开发工具

☺ unity的官网文档:脚本 - Unity 手册 ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|C#脚本、预制体、UI ☺ 学习过程你会发现,其实Unity中主要是用c#进行开…

Javaweb学习(2)

Javaweb学习 一、Maven1.1 Maven概述1.2 Maven简介1.3、Maven基本使用1.4、IDEA配置Maven1.6、依赖管理&依赖范围 二、MyBatis2.1 MyBatis简介2.2 Mybatis快速入门2.3、解决SQL映射文件的警告提示2.4、Mapper代理开发 三、MyBaits核心配置文件四、 配置文件的增删改查4.1 M…

【c++】VSCode配置 c++ 环境(重新制作)

上一篇帖子【c】VSCode配置 c 环境(小白教程)_vscode配置c/c环境_StudyWinter的博客-CSDN博客 大火,但是依旧有很多小伙伴反应没有配好环境,今天打算重新写一个教程,希望对大家有帮助。 1 MinGW下载安装 在CSDN上传了…

高温环境下光模块光功率降低的原因与解决方案

光模块是光纤通信系统中的关键组件,其稳定的光功率输出对于确保通信质量至关重要。然而,高温环境下光模块的光功率往往会出现下降,本期文章我们将探讨高温环境下光模块光功率降低的原因和解决方案。 一、高温环境下光功率降低的原因 &#…

深入理解@ConfigurationProperties注解的作用和用法

文章目录 前言一、配置文件application.properties二、添加依赖三、创建配置类四、测试总结 前言 ConfigurationProperties是一个用于定义属性的注解,通常用于Spring应用程序的配置类中。 通过使用ConfigurationProperties注解,可以将外部配置文件中的属…