编程入门(六)【Linux系统基础操作四】

2024-05-09 14:52

本文主要是介绍编程入门(六)【Linux系统基础操作四】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

读者大大们好呀!!!☀️☀️☀️


博客头像
🔥 欢迎来到我的博客
👀期待大大的关注哦❗️❗️❗️
🚀欢迎收看我的主页文章➡️寻至善的主页

文章目录

  • 🔥前言
  • 🚀if else条件控制
    • 基本的if语句
    • 带else的if语句
    • 嵌套的if语句
    • 具体示例
  • 🚀for 循环
    • 具体示例
  • 🚀测试IP地址
  • 🚀获取当前主机的IPv4地址列表
  • ⭐️⭐️⭐️总结

🔥前言

本系列为Linux基础操作,共有四篇,第一篇为了解Linux的基本概念与操作及相关的文件目录操作第二篇为Linux的用户与网络管理第三篇为Linux的进程和磁盘管理及安装包管理第四篇为Linux shell编程
本篇为第四篇:Linux shell编程

🚀if else条件控制

基本的if语句

if condition
thencommand1command2...commandN
fi

在这里插入图片描述

带else的if语句

if condition
thencommand1command2...commandN
elsecommand
fi

在这里插入图片描述

嵌套的if语句

if  condition1
thencommand1
elif comdition2
thencommand2
elsecommandN
fi

在这里插入图片描述

具体示例

1、简单比较

#!/bin/bash
a=$1
b=$2
if [[ -z ${a} && -z ${b} ]]
thenecho "The length of the two string is 0."
elseif [[ ${a} != ${b} ]]thenecho "${a} != ${b} :a is not equal to b"elseecho "${a} == ${b} :a is equal to b"fi
fi

在这里插入图片描述
2、根据路径与文件名,查看是否存在该文件
场景:在服务器中查找对应的日志文件。
在这里插入图片描述
3、查看是否为当前用户
在这里插入图片描述

🚀for 循环

for var in item1 item2 ...... itemn
do
command1
command2
......
commandn
done

在这里插入图片描述

具体示例

#!/bin/bash
sum=0
for (( i=1; i<=100; i++ ))
dosum=$(( ${sum} + ${i} ))
done
echo "1+2+3+4...+100 = ${sum}"

在这里插入图片描述

🚀测试IP地址

在这里插入图片描述在这里插入图片描述

🚀获取当前主机的IPv4地址列表

场景:
这个脚本可以应用于任何表格有第二列数据的情况,把某一行的第二列的数据取出来,所以并非一定用于获取ip地址场景:同时也是grep、awk和sed 这三个命令的综合应用
在这里插入图片描述

  1. grep:先过滤出来含inet的行,inet后要加个空格,去掉含inet6的行
  2. awk:取出第二列,并打印出来
  3. sed:在一个文档内部的查找和替换功能
  • s:替换,s后的/是一个分隔符
  • addr : 被替换的关键字,// 代表分隔符中间是空的,代表将addr:替换成空
  • g :如果查找到不止一个,全部替换

⭐️⭐️⭐️总结

本篇是linux基础的最后一篇,对shell编程中if、for的语法介绍,以及实际场景的运用。

✈️✈️✈️如果喜欢这篇文章的话

🙏大大们可以动动发财的小手:
👉👉👉 点赞:👍收藏:⭐️评论:✍️👈👈👈

这篇关于编程入门(六)【Linux系统基础操作四】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973695

相关文章

java并发编程之CyclicBarrier(循环栅栏)

package com.zhong;import java.util.concurrent.CyclicBarrier;/*** Cyclic意思是循环,Barrier意思是屏障,那么CyclicBarrier翻译过来就是循环栅栏。* 它是一个同步辅助类,能让一组线程互相等待,* 直到这一组线程都到了一个公共屏障点,各线程才能继续向下执行。因为该屏障能够在释放等待线程后继续重用,所以叫循环屏障。*

System类获取系统属性

package com.zhong; import java.util.Properties; /**  *   * @author zhong  *  */ public class SystemPropertyTest {          public static void main(String[] args) {         //启动脚本传递参数         if(args

Linux命令学习之二

每日一结 ​               命令置换:是将一个命令的输出作为另一个命令的参数,命令格式如下: commond1 `command2` 其中,命令command2的输出将作为命令command1的参数,需要注意的是, 命令置换的单引号为ESC键下方的 ` 其意思就是说,先运行单引号内的命令,再将其命令作为

Linux命令学习之一

每日一结                                                                                        注:当用户不确定一个软件包的类型时, 可使用file命令查看文件类型

Linux文件I/O之一

每日一结(标准I/O)   一  库    本质 :一组实现函数接口 [printf,scanf,strcpy,strlen]   使用标准库好处:屏蔽底层细节,向上层提供统一的接口,提高程序的可移植性   windows 库 : *.dll  linux   库 : *.so    二 系统调用接口    本

嵌入式C和汇编混合编程规则——ATPCS规则

ATPCS规则  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。 一.ATPCS概述 ATPCS规定了一些子程序之间调用的基本规则.这些基本规则包括子程序调用过程中寄存器的使用规则,数据栈的使用规则,参数的传递规则.为适应一些特定的需要,对这些基本的调用规则进行一些修改得到几种不

Linux网络编程之五

每日一结 组播: ​ 网络地址: 一些特殊的组播地址:   一 组播包收和发 1.发送方 (1)创建用户数据报套接字 (2)填充组播地址和端口  (3)发送数据到组播地址 2.接收方  (1)创建用户数据报套接字 (2)加入组播组  struct ip_mreq mreq; mreq.imr_m

Linux网络编程之四

每日一结 一 UDP并发  核心思想:父进程接收到客户端的数据,就创建子进程,在子进程中创建一个新的套接字  和客户端交互  int do_client(接受客户端地址,数据,数据长度) { 1.创建用户数据报套接字  2.自动分配地址  3.处理数据[例如:输出数据内容] 4.通过新创建的套接字将数据回发给客户端  w

Linux网络编程之三

每日一结 Tftp服务器的实现: server.c ​       client.c     代码分析如下:     一 Linux IO模型  (1)阻塞IO  (2)非阻塞IO  非阻塞IO

Linux网络编程之二

每日一结   一 TCP 函数接口  int listen(int sockfd, int backlog); 功能:设置流式套接字为监听模式  参数: @sockfd    流式套接字的fd  @backlog   请求队列的长度,最大128  返回值: 成功返回0,失败返回-1    int accept(i