Shell脚本零碎知识积累

1、使用While循环打印目录中的所有文件:

#!/bin/bash# 定义要遍历的目录
directory="./"# 使用while循环读取目录中的文件
while read file
doecho "Found file: $file"
done < <(find "$directory" -maxdepth 1 -type f)

最后一行的"< <" 并不是一个单独的输入重定向符号,两个< 至少有一个空格,它是两个符号的组合:左边 < 代表左边接受从右边输入,右边 <(command) 代表右边shell(子shell)命令的输出,将输出输出到左边。


2、 使用awk截取字符串:注意使用的是单引号

awk -F '分隔符' '{print $列号}'

使用cut截取字符串:

cut -d '分隔符' -f列号

3、shell脚本参数的获取,如果参数是以”字符串+列表“的形式传入,那么shell会自动拆分成多个参数再传入脚本。例如参数:192.168.1.{1,2,3,4},该参数会被自动拆分成192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4四个,脚本中引用$2,对应着192.168.1.2。


4、统计系统登录用户数

grep "bash$" /etc/passwd | wc -l 

5、awk命令的工作方式:

awk 'BEGIN{ 语句块 } pattern { commands } END{ 语句块 }' file

(1)首先执行BEGIN语句块的语句。
(2)接着从文件或stdin中读取一行,如果能匹配pattern,则执行随后的commands语句。重复这个过程,知道文件全部被读取完毕。pattern是可选的,若果没有pattern,awk就认为所有行都是匹配的。
(3)当读取至输入流末尾,执行END语句块的语句。

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

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

相关文章

linux创建离线yum源给局域网机器使用

适用场景&#xff1a;在封闭的内网环境中&#xff0c;无法使用互联网进行安装各种rpm包的时候&#xff0c;离线yum源可以解决大部分问题&#xff0c;配置号后可直接使用yum进行安装包 1.准备好镜像源ISO&#xff1a; 例如以下示例&#xff0c;具体可参考自己的系统进行下载&a…

新书推荐:7.3 for语句

本节必须掌握的知识点&#xff1a; 示例二十四 代码分析 汇编解析 7.3.1 示例二十四 ■for语句语法形式&#xff1a; for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析&#xff1a; 第一步&#xff1a;执行表达式1&#xff0c;表达式1初始化循环变量&#xff1b; …

MATLAB基础应用精讲-【数模应用】贝叶斯优化

目录 前言 算法原理 朴素贝叶斯算法核心思想 示例 贝叶斯定理

【错题集-编程题】kotori 和迷宫(BFS / DFS)

牛客对应题目链接&#xff1a;kotori和迷宫 (nowcoder.com) 一、分析题目 迷宫问题的扩展。 二、代码 #include <iostream> #include <cstring> #include <queue>using namespace std;const int N 35; int x1, y1; // 标记起点位置 int n, m; char arr[N][…

Java实现抢红包算法——详细注释,标准语法

package learn;import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random;public class RobRedPacket {// 发红包算法&#xff0c;金额参数以分为单位public static List<Integer> divideRedPacket(Integer totalAmoun…

电机控制系列模块解析(23)—— 同步机初始位置辨识

一、两个常见问题 为什么感应电机&#xff08;异步机&#xff09;不需要初始位置辨识&#xff1f;&#xff08;因此感应电机转子磁场在定子侧进行励磁&#xff0c;其初始位置可以始终人为定义为0&#xff09; 为什么同步磁阻电机需要初始位置辨识&#xff1f;&#xff08;因为…

【前端每日基础】day22——js控制结构

循环语句用于重复执行代码块。 for 循环 常用于需要精确控制循环次数的情况。 for (let i 0; i < 5; i) {console.log("Iteration:", i); }while 循环 当条件为真时重复执行代码块&#xff0c;适用于循环次数不确定但条件明确的情况。 let i 0;while (i <…

五分钟搭建一个Suno AI音乐站点

五分钟搭建一个Suno AI音乐站点 在这个数字化时代&#xff0c;人工智能技术正以惊人的速度改变着我们的生活方式和创造方式。音乐作为一种最直接、最感性的艺术形式&#xff0c;自然也成为了人工智能技术的应用场景之一。今天&#xff0c;我们将以Vue和Node.js为基础&#xff…

【软件设计师】计算机组成原理

1、数据的表示 1.1 进制转换 整型有4种进制形式&#xff1a; 1.十进制&#xff08;D&#xff09;&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff08;B&#xff09;&#xff1a; 由0和1两个数字组成。 3.八进制&#xff08;O&#xff09;&am…

嵌入式进阶——数码管

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

前端后端是什么

前端和后端是软件开发中的两个主要部分&#xff0c;它们共同构成了一个完整的应用程序或网站。下面是对前端和后端的简要介绍&#xff1a; 前端&#xff08;Frontend&#xff09; 前端开发指的是应用程序或网站用户界面&#xff08;UI&#xff09;和用户体验&#xff08;UX&a…

sudo和su都莫名其妙无法使用时

不要慌&#xff0c;因为大部分解答都需要sudo去申请权限&#xff0c;所以我们只能重启进入grub界面。 重启时按住shift或者esc,进入后&#xff0c;按↓选中advanced options&#xff0c;enter 点e进入cmd 在输入你的密码后&#xff0c;按照步骤输入&#xff1a; mount -o r…

ESP8266,51单片机,ESP32,Arduino,STM32系列,Raspberry Pi 对比,异同点分析,优势分析和代表产品

下面是您提到的几款单片机的详细介绍&#xff0c;包括它们的应用场景、区别、优势和代表产品&#xff1a; 1. ESP8266 应用场景&#xff1a;主要用于WiFi联网项目&#xff0c;如智能家居设备、IoT传感器和无线控制。优势&#xff1a;低成本、内置Wi-Fi功能、低功耗模式&#…

linux centos循环ping网段ip

循环ping&#xff0c;检测ip是否可用&#xff0c;ping通为正在使用yes&#xff0c;no为不通 vim test.sh#!/bin/bash ip"192.168.1."echo "ping log:" > ./ping.txt for i in {1..128} doping -c 1 -w 1 -W 1 $ip$i | grep -q "ttl" &&a…

机器学习KNN算法-鸢尾花分类背后技术详解

引言 K-最近邻&#xff08;KNN&#xff09;算法是一种简单而有效的分类方法&#xff0c;广泛应用于各种分类任务中。本文将详细介绍KNN算法在鸢尾花分类任务中的应用&#xff0c;并通过代码示例来展示其背后的技术精髓。我们将分三大部分来展开&#xff0c;本部分将重点介绍KN…

Android跨进程通信--Binder机制及AIDL是什么?

文章目录 Binder机制Binder是什么&#xff1f;Binder相对于其他几种跨进程通信方式&#xff0c;有什么区别&#xff1f;谈一下 Binder IPC 通信过程&#xff1a;具体的通讯过程是什么&#xff1f;Binder如何处理发送请求与接收请求?Binder是通过什么方式来进行内存映射的&…

linux入门到精通-第十九章-libevent(开源高性能事件通知库)

目录 参考什么是libevent应用核心实现libevent的地基event_base等待事件产生&#xff0c;循环监听event_loop退出循环监听event_base_loopexit创建事件工作流程 安装一&#xff08;源码安装&#xff0c;推荐&#xff09;现在源码配置编译安装验证安装 安装二&#xff08;可能因…

KingbaseES数据库merge语法

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 MERGE 语句是一种用于数据操作的 SQL 语句&#xff0c;它能够根据指定的条件将 INSERT、UPDATE 和 DELETE 操作结合到单个语句中。其主要作用是在目标表和源表之间进行数据比较和同步&#xff0c;根据条件的匹配情况来…

高效并发编程:Java阻塞队列深度解析与最佳实践

1.阻塞队列的基本概念与应用场景 1.1 阻塞队列的定义 阻塞队列&#xff08;BlockingQueue&#xff09;是Java并发包中的一个接口&#xff0c;它支持两个附加操作&#xff1a;当队列为空时&#xff0c;获取元素的线程会等待队列变为非空&#xff1b;当队列满时&#xff0c;存储…

RAG概述(二):Advanced RAG 高级RAG

目录 概述 Advanced RAG Pre-Retrieval预检索 优化索引 增强数据粒度 粗粒度 细粒度 展开说说 优化索引 Chunk策略 Small2Big方法 元数据 引入假设性问题 对齐优化 混合检索 查询优化 查询扩展 查询转换 Post-Retrieval后检索 参考 概述 Native RAG&#…