shell for循环

shell 案例

匿名 (未验证) 提交于 2019-12-02 23:36:01
编写 hello world 脚本 #!/bin/bash echo "hello world" 通过位置变量创建 Linux 系统账户及密码 #!/bin/bash #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$!" 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 #vim /root/logbak.sh #编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 #注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面 tar -czf log- date +%Y%m%d .tar.gz /var/log 00 03 5 /root/logbak.sh 一键部署 LNMP(RPM 包版本) #!/bin/bash #使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败 #本脚本使用于 centos7.2 或 RHEL7.2 systemctl start httpd mariadb systemctl enable httpd mariadb 实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给 root 管理员 #!/bin/bash #Author:丁丁历险(Jacob) #提取根分区剩余空间 disk

Shell编程-08-Shell中的循环语句

匿名 (未验证) 提交于 2019-12-02 22:59:29
while 、 until 、 for 和 select 等。 while <条件表达式> do 语句 done 1、使用exec exec < FILE while read line do command done 2、使用cat和管道 cat FILEPATH/FILE | while read line do command done 3、在done后使用重定向 while read line do command done < FILE 1、打印数字 [root@localhost Test]# cat while.sh #!/bin/bash a=$1 while [ ${a} -ge 0 ] do echo "Current number is:" ${a} a=$((a-1)) done [root@localhost Test]# bash while.sh 5 Current number is: 5 Current number is: 4 Current number is: 3 Current number is: 2 Current number is: 1 Current number is: 0 2、读取文件 # 读取网卡配置文件 [root@localhost Test]# cat readnet.sh #!/bin/bash while read

2.1 shell语句

匿名 (未验证) 提交于 2019-12-02 22:56:40
一、条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; then 条件为真的分支代码 else 以上条件都为假的分支代码 fi 例子: 1、编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示 其存在,否则添加之;显示添加的用户的id号等信息 vim createuser.sh #!/bin/bash read -p "please input username:" username useradd $username &> /dev/null if [ $? -eq 0 ];then echo "add $username user" && id $username else echo "the user already exits" fi 2、编写脚本/root/bin/checkint.sh,判断用户输入的参数是 否为正整数 vim checkint.sh #!/bin/bash read -p "please input

shell基础 -- 基本语法

微笑、不失礼 提交于 2019-12-02 19:21:39
目录 1.1 变量的命名 1.2 变量的赋值 1.3 变量的类型 2.1 使用 expr 命令对算术表达式求值 2.2 使用 $(( ... )) 的方式对算术表达式求值 3.1 bash 计算器 bc 3.2 在脚本中使用 bc 5.1 if 语句 5.2 case 语句 5.3 for 语句 5.4 while 与 until 语句   本文介绍一下 shell 的语法。 一、变量   在 shell 里,使用变量之前通常并不需要事先为他们做出声明,需要使用的时候直接创建就行了。 默认情况下,所有变量都被看做字符串并以字符串来存储,即使它们被赋值为数值时也是如此 。shell 和一些工具会在需要时把数值型字符串转换成对应的数值以对它们进行操作。 回到顶部 1.1 变量的命名   shell 变量的命名规则如下: 开头是一个字母或下划线,后面可以接任意长度的字母、数字或下划线符号,变量名的字符长度并无限制 (Bourne shell中)。不过为了兼容性(一些早期的shell里变量名是有长度限制的),一般还是不要超过255个字符。另外, Linux 区分大小写 。当用户自己定义变量的时候,要注意变量名不能与 shell 中的关键字重名。 回到顶部 1.2 变量的赋值   shell 中变量的赋值方式如下: 变量名=值 # 注意 赋值语句两边不能有空格   注意,

15-1 shell脚本进阶

亡梦爱人 提交于 2019-12-02 19:15:54
shell脚本进阶 循环 循环执行 将某代码段重复运行多次 重复运行多少次 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 for, while, until for循环 for VAR in [list];do CODE done 执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 列表生成方式: (1) 直接给出列表 (2) 整数列表: (a) {start..end} (b) $(seq [start [step]] end) (3) 返回列表的命令 $(COMMAND) (4) 使用glob,如:*.sh (5) 变量引用 $@, $* for特殊格式 双小括号方法,即((…))格式,也可以用于算术运算 双小括号方法也可以使bash Shell实现C语言风格的变量操作 I=10 ((I++)) for循环的特殊格式: for ((控制变量初始化;条件判断表达式;控制变量的修正表达式)) do 循环体 done 控制变量初始化:仅在运行到循环代码段时执行一次 控制变量的修正表达式:每轮循环结束会先进行控制变量修正运算,而后再做条件判断 while循环 while CONDITION; do 循环体 done CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为

第七章 Shell正则应用

大憨熊 提交于 2019-12-02 16:38:31
1. 正则表达式概述 01. 什么是正则表达式 正则表达式 regular expression , RE是一种字符模式,用于在查找过程中匹配指定的字符。 02. 为什么要使用正则表达式? 在工作中,我们时刻面对着大量的日志,程序,以及命令的输出。迫切的需要过滤我们需要的一部分内容,甚至是一个字符串。比如: 现在有一个上千行的文件,我们仅需要其中包含"root"的行,怎么办? 此时就需要使用到正则表达式的规则来筛选想要的内容。 03. 正则表达式注意事项 1.正则表达式应用非常广泛,存在于各种语言中,例如:php,python,java等。2.正则表达式和通配符特殊字符是有本质区别的3.要想学好grep、sed、awk首先就要掌握正则表达式。4.注意正则神坑,中文符号。 2. 正则表达式规则 正则表达式描述 \转义符,将特殊字符进行转义,忽略其特殊意义 ^匹配行首,^是匹配字符串的开始 $匹配行尾,$是匹配字符串的结尾 ^$表示空行. (点)匹配换行符之外的任意单个字符 [ ]匹配包含在[字符]之中的任意一个字符 [^]匹配[^]之外的任意一个字符 [a-z]匹配[]中指定范围内的任意一个字符 ?匹配其前面的字符1次或者0次+匹配其前面的字符1次或者多次 匹配其前面的字符0次或者多次**.** *表示所有( )匹配表达式,创建一个用于匹配的字符串 {n}匹配之前的项n次

shell编程-学习

梦想的初衷 提交于 2019-12-02 15:29:23
Shell 编程入门 走进 Shell 编程的大门 为什么要学Shell? 什么是 Shell? Shell 编程的 Hello World Shell 变量 Shell 编程中的变量介绍 Shell 字符串入门 Shell 字符串常见操作 Shell 数组 Shell 基本运算符 算数运算符 关系运算符 逻辑运算符 布尔运算符 字符串运算符 文件相关运算符 shell流程控制 if 条件语句 for 循环语句 while 语句 shell 函数 不带参数没有返回值的函数 有返回值的函数 带参数的函数 Shell 编程入门 走进 Shell 编程的大门 为什么要学Shell? 学一个东西,我们大部分情况都是往实用性方向着想。从工作角度来讲,学习 Shell 是为了提高我们自己工作效率,提高产出,让我们在更少的时间完成更多的事情。 很多人会说 Shell 编程属于运维方面的知识了,应该是运维人员来做,我们做后端开发的没必要学。我觉得这种说法大错特错,相比于专门做Linux运维的人员来说,我们对 Shell 编程掌握程度的要求要比他们低,但是shell编程也是我们必须要掌握的! 目前Linux系统下最流行的运维自动化语言就是Shell和Python了。 两者之间,Shell几乎是IT企业必须使用的运维自动化编程语言,特别是在运维工作中的服务监控、业务快速部署、服务启动停止

Shell脚本基础学习

江枫思渺然 提交于 2019-12-02 14:58:30
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会这个东西, 你可以说入行了. 高级程序员不会这个, 是怎么回事, 我鄙视你, 所以我要学习, 记不住怎么办, 请看各种shell文件, 如 Go语言编译 ! 参考: 这里 从第一行开始 我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/bash 此行称为 shebang (就是 sharp (#) + bang (!) 的意思),会指引操作系统使用接下来指定的程序运行此文件。此处用 /bin/bash 执行我们的文件。 一些人使用 #!/bin/sh 来让 sh 执行文件,按照习惯这表示任何支持 POSIX shell 命令语言的 sh 程序。为了用上我们所喜欢的 bash 拓展语法功能,我们就不这么用了。如果你使用别的脚本,例如 /bin/tcsh ,照着样子加个 #! 就行。 编辑结束并保存后,如果直接要执行该脚本,必须先使其具有可执行属性: chmod +x filename 此后在该脚本所在目录下,输入 ./filename 即可执行该脚本。 变量

shell编程_for循环

时光总嘲笑我的痴心妄想 提交于 2019-12-02 09:08:30
for循环 列表循环 1.已知次数 语法: 用花括号定义循环次数 for variable in { list } do command command done for variable in a b c do command command done 案例:输出1到5 for i in { 1 . . 5 } do echo $i done 打印1到50的偶数 for i in { 0 . . 50 . . 2 } do echo $i done for i in $ ( seq 10 ) ; do echo $i ; done 反过来打印{10…1}/ {10…1…-1} 步长在最后 或者 seq 10 -1 1 #步长在中间 列表循环3种技巧 {} seq a b c 不带列表循环 由用户指定参数和参数的个数 for variable do command command 案例: for i do echo hello done #./for3.sh a b c 类C风格的For循环 for ( ( expr1 ; expr2 ; expr3 ) ) do command command . . . done for ( ( i=1 ; i<=5 ; i+ + ) ) do echo $i done 案例 计算1-100的奇数和 s=0 for(( i=1;i<=100;i

SHELL学习笔记三

这一生的挚爱 提交于 2019-12-02 06:05:38
SHELL学习笔记三 SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 for var in list do commands done $ cat test1 #!/bin/bash # basic for command for test in Alabama Alaska Arizona Arkansas California Colorado do echo The next state is $test done $ ./test1 The next state is Alabama The next state is Alaska The next state is Arizona The next state is Arkansas The next state is California The next state is Colorado $ 读取列表中的复杂值 使用转义字符(反斜线)来将单引号转义; 使用双引号来定义用到单引号的值。 $ cat test2 #!/bin/bash # another example of how not to use the for command for test in I don\'t know if "this'll" work do echo "word:$test" done $ .