shell脚本实例

shell脚本简单例子

和自甴很熟 提交于 2019-12-06 04:22:06
eg: Expect: 1.用环境变量RANDOM随机生成一个100以内的随机数 2.read读取当前输入 3.当前输入对比随机生成的数 4.当两个数相等时跳出苏循环,并计数(比较n次结果才相等) 1 #!/bin/bash 2 i=0 3 num=$(expr $RANDOM % 100) 4 echo $num 5 while true 6 do 7 let i++ 8 read -p "Please input number(1-100):" digit 9 if [ $digit -eq $num ]; then 10 echo $digit 11 echo "一共$i 次!!" 12 break 13 elif [ $digit -lt $num ]; then 14 echo "The number is less!" 15 elif [ $digit -gt $num -o $digit -gt 100 ]; then 16 echo "The number is bigger" 17 #elif [ $digit -gt 100 ]; then 18 # echo "not in the range!! Please reinput." 19 else 20 continue 21 fi 22 done eg: 复习简单实例 , 简单输入n次要取得值

shell脚本的基本语句

耗尽温柔 提交于 2019-12-06 02:35:42
shell 变量: name=”hauzai007” echo $name 注意事项: 变量名和等号之间不能有空格 不能使用标点符号 不能使用bash里的关键字 只读变量: name=”huazai007” 关键字:readonly name 删除变量: unset name 变量类型: 1 局部变量: 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量 2 环境变量: 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。 系统环境变量: 查看所有环境变量:env 删除环境变量:unset HAHA 举个例子: PPID:是当前进程的父进程的PID PWD:当前工作目录。 RANDO:随机数变量。每次引用这个变量会得到一个0~32767的随机数。 查看所有环境变量:env 删除环境变量:unset 用vim在/etc/profile文件中添加我们想要的环境变量 设置新的环境变量 export 新环境变量名=内容 例:export MYNAME=”LLZZ” 生效 source /etc/profile 字符串 str="abcdefg" echo ${#str} echo ${str:1:4} #表示从字符串的第二个字符开始截取,取第四个字符

Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录

痴心易碎 提交于 2019-12-05 19:21:14
Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录 转自 https://www.cnblogs.com/kevingrace/p/10466530.html 一. MySQL InnoDB Cluster 介绍 MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluster, 腾讯的PhxSQL, MySQL Fabric., aliSQL。MySQL官方在2017年4月推出了一套完整的、高可用的Mysql解决方案 - MySQL InnoDB Cluster, 即一组MySQL服务器可以配置为一个MySQL集群。在默认的单主节点模式下,集群服务器具有一个读写主节点和多个只读辅节点。辅助服务器是主服务器的副本。客户端应用程序通过MySQL Router连接到主服务程序。如果主服务连接失败,则次要的节点自动提升为主节点,MySQL Router请求到新的主节点。InnoDB Cluster不提供NDB Cluster支持。 -> 分布式MySQL之InnoDB和NDB 分布式MySQL主要有InnoDB和NDB模式, NDB是基于集群的引擎-数据被自动切分并复制到数个机器上(数据节点),

Shell学习(三)Shell参数传递

早过忘川 提交于 2019-12-05 17:07:45
一、 传参实例 ##脚本文件内容 #执行的文件名 echo $0; #第一个参数 echo $1; #第二个参数 echo $2; #第三个参数 echo $3; ##调用语句 ./testShell.sh 1 9 5 输出结果: 二、 处理参数 #普通输出 echo "Shell 传递参数实例!"; #获取某个参数的值: $n echo "第一个参数为:$1"; #获取参数数量: $# echo "参数个数为:$#"; #把传参作为一个字符串显示 echo "传递的参数作为一个字符串显示:$*"; #把传参作为一个字符串显示(但是内部是多个参数分隔的,用循环就可以看出不同) echo "把传参作为一个字符串显示(但是内部是多个参数分隔的,用循环就可以看出不同):$@"; echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done 输出结果: 来源: https://www.cnblogs.com/riches/p/11934562.html

Shell学习(二)Shell变量

北慕城南 提交于 2019-12-05 14:46:37
一、 Shell变量 变量的定义 例子: my_job="Learn Shell"    PS: 变量名和等号之间 不能有空格 !!! 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 变量的使用   使用一个定义过的变量,只要在 变量名前面加美元符号 即可。 #定义变量 my_name="zh" #使用变量(建议加上花括号区分变量边界) echo $my_name #使用变量【推荐形式】 echo ${my_name} 设置变量只读   使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 #定义变量 myUrl="www.cnblogs.com/riches" #将变量设置为“只读”状态 readonly myUrl 删除变量   使用 unset 命令可以删除变量。语法: #删除变量 unset myUrl 变量类型 局部变量 :局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。 环境变量 :所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。 shell变量

shell 基本语法

喜夏-厌秋 提交于 2019-12-05 09:27:58
shell 基本语法 jenkins 上构建项目时,经常需要借助 shell 脚本,最近也经常跟服务器打交道,顺便记录些常用命令,方便查阅 语法-变量 # 定义变量 name='dasu' # 使用变量 echo $name # dasu echo "I am ${name}." # I am dasu. xxx='dasu' 用 key=value 形式定义变量, = 等号两边不能有空格 $xxx 或 ${xxx} 变量名前加个 $ 使用变量,大括号省略也可以 语法-字符串 # 字符串使用 name='dasu' name2="dasu" name3=dasu echo "$name $name2 $name3" # dasu dasu dasu # 字符串长度 echo ${#name} #4 # 注意,shell 里都是命令 'dasu' # dasu: command not found # 获取子字符串 echo ${name:0:2} # da # 寻找字符 echo `expr index $name s` # 3 下标从1开始 'dasu' "dasu" dasu 单引号 、 双引号 、甚至 不加引号 都会被作为字符串使用 单引号里的字符串不做任何处理工作,是什么就原样输出 双引号里如果有表达式、有转义符,有变量,会先进行处理,最后再输出,所以字符串的拼接

Python17个常用内置模块总结

寵の児 提交于 2019-12-05 05:27:05
Python17个常用内置模块总结 1、getpass 2、os 3、sys 4、subprocess 5、hashlib 6、json 7、pickle 8、shutil 9、time 10、datetime 11、re 12、random 13、configparser 14、traceback 15、yaml 16、itertools 17、logging 1、getpass模块详解 pwd = getpass.getpass("请输入密码:") #输入密码不可见 yh = getpass.getuser() #显示当前登录系统用户名; 2、os模块 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") #改变当前脚本工作目录;相当于shell下cd os.curdir #返回当前目录: ('.') os.pardir #获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') #可生成多层递归目录 os.removedirs('dirname1') #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') #生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname'

linux shell awk 流程控制语句(if,for,while,do)详细介绍

≡放荡痞女 提交于 2019-12-05 02:40:14
  awk是gawk的链接文件,是一种优良的文本处理工具,实现格式化文本输出,是Linux和Unix现有环境中功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人拥有的知识量,使用"man gawk"给出的简述为“模式扫描和处理语言”。   任何awk语句都是由 模式和动作 组成,一个awk脚本可以有多个语句,模式决定动作语句的触发条件和触发时间。   模式包含:正则表达式,/[正则表达式]/;关系运算符,<、<=、>、>=、!=、==;正则运算符,~(匹配)、!~(不匹配);赋值运算符,=、+=、-=、*=、/=、%=、**=;逻辑运算符||、&&;算术运算符+、-、*、/、++、--;其他运算符,$(用来对字段进行引用),空格(字符串连接符)。   动作包含:变量、命令、内置函数、流程控制语句。   语法:awk [选项] ' BEGIN{开始语句} 模式{动作} END{结束语句} ' [文件]。其中 BEGIN和END 是awk的关键字, 必须大写。 不过开始模块和结束模块 是可选部分,可以省略 。并且 开始语句和结束语句也是动作语句 。另外, 工作模块中的 模式和动作可以都存在,也可以二者选其一 。 如果省略模式,那么文件的所有行都执行动作;如果省略动作,表示对符合条件的行执行默认的print动作 。正因为可以二者选其一,所以一般用{}包裹动作

adb shell常用命令

人盡茶涼 提交于 2019-12-05 02:35:36
一、文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号,但会忽略空行 -s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file...] 查询文件或目录的磁盘使用空间 ls [-a] [-i] [-l] [-n] [-s] 列出目录内容 -a:列出所有文件,包括隐藏文件 -i:输出文件的i节点的索引信息 -l列出文件的详细信息 -n:用数字的GUID代替名称 -s:输出该文件的大小 grep [-abcDEFGHhliJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num] [-e pattern] [-f file] [--binary-files=value] [--color=when] [--context=num] [--directories=action] [--lable] [--line-buffered] [pattern] [file...] 指定文件中搜索特定的内容,并将含有这些内容的行标准输出 mkdir -p,-parents 创建目录 -p,-

linux shell 管道命令(pipe)使用及与shell重定向区别

♀尐吖头ヾ 提交于 2019-12-05 01:54:49
管道命令 操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了。 通过管道之后:comand1,comand2的正确输出不显示在屏幕上面 注意: 1、管道命令只处理前一个命令正确输出,不处理错误输出 2、管道命令右边命令,必须能够接收标准输入流命令才行。 实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [chengmo@centos5 shell]$ cat test .sh | grep -n 'echo' 5: echo "very good!" ; 7: echo "good!" ; 9: echo "pass!" ; 11: echo "no pass!" ; #读出test.sh文件内容,通过管道转发给grep 作为输入内容 [chengmo@centos5 shell]$ cat