
Shell编程
文章平均质量分 66
学习shell基础
二进制杯莫停
欲速则不达,慢而有为
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
shell逐行读取文件 & 远程操作服务器
逐行读取 installed_ips 文件中的 IP 地址通过 SSH 连接到远程服务器,执行 remote_remove_tool.sh 脚本用于批量卸载多个服务器上的测试程序使用 & 并行执行,提高速度检查 installed_ips 是否存在,避免脚本报错增加 SSH 连接超时判断,防止连接卡住。原创 2025-03-04 17:17:54 · 470 阅读 · 0 评论 -
Shell:初识sed、awk
默认情况下,sed编辑器会将指定的命令应用到STDIN输入流上。这样你可以直接将数据通 过管道输入sed编辑器处理。这里有个简单的示例。这个例子在sed编辑器中使用了s命令。s命令会用斜线间指定的第二个文本字符串来替换第 一个文本字符串模式。在本例中是big test替换了test。当然,这个简单的测试只是修改了一行数据。不过就算编辑整个文件,处理速度也相差无几。重要的是,要记住,sed编辑器并不会修改文本文件的数据。它只会将修改后的数据发送到 3 STDOUT。原创 2024-09-13 16:47:01 · 890 阅读 · 0 评论 -
Shell:创建函数
bash shell允许创建函数库文件,然后在多个脚本中引用该库文件。库文件myfuncs,它定义了3个简单的函数。/bin/bashthenelseecho -1fi使用函数库的关键在于source命令。source命令会在当前shell上下文中执行命令,而不是 创建一个新shell。可以用source命令来在shell脚本中运行库文件脚本。这样脚本就可以使用库 中的函数了。source命令有个快捷的别名,称作点操作符(dot operator)。原创 2024-08-24 17:31:38 · 1023 阅读 · 0 评论 -
Shell:控制脚本 - 信号量
Linux系统和应用程序可以生成超过30个信号。表16-1列出了在Linux编程时会遇到的最常见的Linux系统信号。通过SIGINT信号,可以中断shell。你可能也注意到了,shell会将这些信号传给shell脚本程序来处理。而shell脚本的默认行为 是忽略这些信号。它们可能会不利于脚本的运行。要避免这种情况,你可以脚本中加入识别信号的代码,并执行命令来处理信号。原创 2024-08-19 18:02:51 · 730 阅读 · 0 评论 -
Shell:呈现数据
Linux系统将每个对象当作文件处理。这包括输入和输出进程。Linux用来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开 的文件。每个进程一次最多可以有九个文件描述符。出于特殊目的,bash shell保留了前三个文 件描述符(0、1和2。原创 2024-07-19 17:46:28 · 490 阅读 · 0 评论 -
shell:处理命令行参数 && 获取用户输入
bash shell会将一些称为的特殊变量分配给输入到命令行中的 所有参数。这也包括shell所执行的脚本名称。$0是程序名,$1是第 一个参数,$2是第二个参数,依次类推,直到第九个参数$9。原创 2024-06-29 15:19:57 · 2196 阅读 · 0 评论 -
shell:使用结构化语句(for、while循环)
下面是bash shell中for命令的基本格式。每次for命令遍历值列表,它都会将列表中的下个值赋给$test变量。$test变量可以像for 命令语句中的其他脚本变量一样使用。在最后一次迭代后,$test变量的值会在shell脚本的剩余 部分一直保持有效。它会一直保持最后一次迭代的值(除非你修改了它)。原创 2024-06-27 16:19:15 · 392 阅读 · 0 评论 -
shell:使用结构化语句(控制流)
许多程序要求对shell脚本中的命令施加一些逻辑流程控制。有一类命令会根据条件使脚本跳过某些命令。这样的命令通常称为结构化命令(structured command)。原创 2024-06-25 17:13:22 · 696 阅读 · 0 评论 -
shell:退出脚本exit
默认情况下,shell脚本会以脚本中的最后一个命令的退出状态码退出。$ ./test60 $你可以改变这种默认行为,返回自己的退出状态码。exit命令允许你在脚本结束时指定一个退出状态码。/bin/bashvar1=10var2=30exit 5当查看脚本的退出码时,你会得到作为参数传给exit命令的值。$ ./test135 $也可以在exit命令的参数中使用变量。/bin/bashvar1=10var2=30exit $var3当你运行这个命令时,它会产生如下退出状态。原创 2024-06-25 15:47:34 · 825 阅读 · 0 评论 -
shell:远程机器执行当前机器的脚本
命令从当前机器(即你正在操作的机器)连接到另一台机器,并在那台远程机器上执行当前机器上的一个脚本,你需要将脚本文件复制到远程机器,或者使用其他方法(如通过HTTP、FTP等)在远程机器上访问该脚本。请注意,你需要在远程机器上的适当位置有写权限,以便能够将脚本复制过去,并且可能需要使用chmod命令来给远程脚本添加执行权限(如果它还没有的话)。但是,如果你只是想在远程机器上执行一个命令,而这个命令的内容是当前机器上的一个脚本的内容,你可以使用。命令的标准输入,从而将其发送到远程机器。原创 2024-06-20 15:36:00 · 580 阅读 · 0 评论 -
shell脚本中set -e用途
被设置时,脚本会在输出 “Starting script” 后立即退出,而不会输出 “This line will not be executed if set -e is set”。是一个有用的工具,但在编写脚本时还需要注意其他错误处理机制,如使用 -o pipefail 来捕获管道中的错误,以及使用条件语句来显式检查命令的退出状态。具体来说,当在脚本中执行一个命令,并且该命令返回非零退出状态时(通常表示错误),这有助于在脚本中早期发现错误,并防止可能由于后续命令执行而导致的更严重的问题。原创 2024-06-20 15:21:31 · 695 阅读 · 0 评论 -
命令行:ulimit工具
ulimit是一个计算机命令,用于shell启动进程所占用的资源,可用于修改系统资源限制。使用ulimit命令用于临时修改资源限制,如果需要永久修改需要将设置写入配置文件。原创 2023-07-24 19:42:41 · 545 阅读 · 0 评论 -
Shell自定义函数
自定义函数基本语法[function] funcname[()]{ Action; [return int;]}调用直接写函数名:funcname [值]应用实例:计算输入两个参数的和。vim func.sh#!/bin/bash# 案例1:计算输入两个参数的和function getSum(){ SUM=$[$n1+$n2] ...原创 2020-04-19 18:30:01 · 202 阅读 · 0 评论 -
Shell系统函数
函数介绍shell编程和其他编程语言一样,有系统函数,也可以自定义函数。在系统函数中,我们介绍两个,起抛砖引玉的作用。系统函数1、bashname基本语法功能:返回完整路径最后/的部分,常用于获取文件名。basename [pathname] [suffix]basename [string] [suffix] 功能描述:basename命令会删掉所有的前缀,然后将字符串显示出来。...原创 2020-04-19 18:19:25 · 216 阅读 · 0 评论 -
Shell读取控制台输入
read读取控制台输入read (选项)(参数)选项:-p:指定读取值时的提示符;-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。参数:变量:指定读取值的变量名应用实例:案例1:读取控制台一个num值#!/bin/bash# 案例1:读取控制台输入一个num值read -p "请输入一个整数=" NUM1echo "输入的整数=$NUM...原创 2020-04-19 18:03:36 · 323 阅读 · 0 评论 -
Shell流程控制
流程控制1、if判断基本语法if [ 条件判断式 ];then 程序fi或者if [ 条件判断式 ]then 程序elif [ 条件判断式 ]then 程序fi注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格(2)推荐使用第二种方式。应用实例请编写一个shell程序,如果输入的参数,大于等于60,则输出"及格了",如果小于60,则输出“不...原创 2020-04-19 17:38:58 · 411 阅读 · 0 评论 -
Shell判断条件
条件判断基本语法[ condition ] 注意condition前后都有空格 非空返回true,可使用$?验证(0为true,>1为false)应用实例[ atguigu ] 非空,返回true[ ] 空,返回false[ condition ] && echo "OK" || echo "notOK" true则打印OK,false...原创 2020-04-19 16:14:23 · 536 阅读 · 0 评论 -
shell运算符
运算符基本介绍学习如何在shell中进行各种运算操作。基本语法1)"$((运算式))"或"$[运算式]",更推荐第二种方式。2)expr m+n注意:expr运算符键要有空格。3)expr \*,/,% 乘,除,取余应用实例案例1:计算(2+3)× 4 的值#!/bin/bashRESULT1=$(((2+3)*4))echo "result1=$RESULT1"...原创 2020-04-19 15:42:48 · 410 阅读 · 0 评论 -
Shell预定义变量
基本介绍预定义变量是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用基本语法$$ 功能描述:当前进程的进程号(PID)$! 功能描述:后台运行的最后一个进程的进程号(PID)$? 功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行; 如果这个变量的值为非0(具体是哪个数字,由命令自己决定),则证明上一个...原创 2020-04-19 15:20:16 · 461 阅读 · 0 评论 -
Shell位置参数变量
位置参数变量介绍当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息。基本语法$n 功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数 十以上的参数需要用大括号包含,如 ${10}$* 功...原创 2020-04-19 11:44:11 · 291 阅读 · 0 评论 -
shell的注释
单行注释# 这是一个单行注释多行注释:<<!这是多行注释!原创 2020-04-19 11:20:43 · 121 阅读 · 0 评论 -
Shell环境变量
基本语法1)export 变量名=变量值 (功能描述:将shell变量输出为环境变量)2)source 配置文件 (功能描述:让修改后的配置信息立即生效)3)echo $变量名 (功能描述:查询环境变量的值)快速入门1)在/etc/profile文件中定义TOMCAT_HOME环境变量2)查看环境变量TOMCAT_HOME的值3)在另一个shell程序中使用TOMCAT_H...原创 2020-04-19 11:18:34 · 199 阅读 · 0 评论 -
Shell的变量
1、Shell的变量介绍1)Linux Shell中的变量分为:系统变量和用户自定义变量2)系统变量:$HOME、$PWD、$SHELL、$USER等等3)显示当前shell中的所有变量:set2、Shell变量的定义基本语法1)定义变量:变量=值A=1002)撤销变量unset 变量unset A3)声明静态变量,静态变量不能unsetreadonly A=10...原创 2020-04-19 11:09:44 · 263 阅读 · 0 评论 -
Shell - 概览
Shell的用途自动化批量系统初始化程序(update,软件安装,时区设置,安全策略…)自动化批量软件部署程序(LAMP,LNMP,Tomcat,LVS,Nginx)应用管理程序(KVM,集群管理扩容,MySQL,DELL-R720批量RAID)日志分析处理程序(PV,UV,200,!200,top 100,grep/awk)自动化备份恢复程序(MySQL完全备份/增...原创 2020-02-25 22:14:38 · 213 阅读 · 0 评论