Shell脚本笔记(五)Shell函数】的更多相关文章

0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.130.2 192.168.130.3 192.168.130.4 192.168.130.5 192.168.130.6 192.168.130.7 192.168.130.8 192.168.130.9 192.168.130.10 192.168.130.11 192.168.130.12 19…
这篇文章主要介绍了shell脚本实现监控shell脚本的执行流程及变量的值本文使用shell完成对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察功能,需要的朋友可以参考下 很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我们下面就写个小小的shell例子,来完成这个对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程…
shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls.cd.pwd等等.总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动.暂停.停止程序的运行或对计算机进行控制. shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效.安全.低成本地使用 Linux 内核,这就是 Shell 的本质. s…
一些零碎的基础知识 一.认识Shell脚本 一)相关概念 Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序. Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务. 查看系统默认Shell: #方法一: echo $SHELL #方法二: grep root /etc/passwd 二)开发规范 1)脚本第一行指定解释器 #!/bin/bash 2)开头添加版本.版权等信息 3)脚本中尽量不要用中文 4)扩展名为…
  如何查询文件里的某个字符串? grep “字符串” 文件 例:grep "abc" tmp.txt   如何将查询出来的内容赋给变量? str=$(grep "abc" tmp.txt)    如何打印变量的值? echo $varname 注:要想引用变量,最好写成${varname}的形式   如何在屏幕上输出提示,让用户输入y或n来选择进行下一步? echo -n "Continue?" read ANS case $ANS in y|…
(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.(2)Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.(3)如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量.…
Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个全局变量 export a="I want break free" #或者 b="Sunday Morning" export b #删除一个全局变量 unset a 二)局部环境变量 局部环境变量只能在定义它们的进程中可见. #注意变量名.等号.和值之间是没有空格的…
http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.  函数定义 function 函数名() { 语句 [return] } 关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号, 符号“{”表示函数执行命令的入口,该符号也可以在函…
函数别名 设置别名 alias name="command" alias ll="ls -laS" 取消别名 unalias name 求取数学表达式 value=$[6/3] value=$((6/3)) let "value += 1" 定义局部变量 local value 定义整数 declare -i value 命令替换 value=`command` value=$(command) 系统变量 $n,第n个參数 $#,參数个数 $0,…
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. retu…
今天开始自己的shell脚本练习,刚好公司有太服务器,要时间对数据的cp是按月的: 考虑:首先寻找规律,发现都放置在/opt/www/aaa/  里面有很多的2级和3级目录和文件,但我追踪要备份的是年月为文件名的格式:2015_06 这样的格式,首先我们不清楚这个目录下有多少这样的2015_06的子目录所以需要统计: @qq.com :: CST 2015 pathh=/opt/www/acc/musicFile/ @首先定义的是源文件路径 pathd=/opt2/musicFile/ @要备份…
控制Shell脚本 一.处理信号 1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 登录Linux时,系统会分配给登录用户一个终端(Session).在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个Session.当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号.这个信号的默认操作为终止进程,因此前台进程组和后台有终端输出…
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell Linux 启动过程: BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell BIOS 基本输入输出系统 选择U盘启动还是硬盘启动:MBR 硬盘里可引导的部分:BootLoader(grub) 启动内核工具 选择启动的内核: kernel 启动内核:systemd…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 十.Shell工具(重点) 1.cut cut 的工作就是“剪”,具体的说就是在文件中负责剪切数据用的. cut 命令从文件的每一好难过剪切字节.字符和字段并将这些字节.字符和字段输出. 1.1 基本用法 cut [选项参数] filename 说明: 默认分隔符是制表符 1.2 选项参数说明    选项参数   功能    -f 列好,提取第几列   -d 分隔符,按照指定分隔符分割列 1.3 案例…
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linux系统的系统命令的一个集合:他包含了有逻辑判断.循环语句和自定义的函数等. 2.shell脚本用来实现系统管理的自动化运维,提高管理效率.如:每日凌晨3点需要备份数据或要部署上百台机器的时候,就可以使用脚本文件同时进行操作,大大提高效率. 3.shell脚本编写是运维工作的重点,也是工作应聘的必备熟…
shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数. 例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $? 上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数…
一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行方法有两种 chmod  a+x 01.sh; ./01.sh bash 01.sh 查看脚本执行过程…
六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括号两端必须要有空格 语法3:[[<测试表达式>]] #两端必须要有空格 语法4:((测试表达式)) #两端必不需要空格 语法5:(命令表达式) 语法6:命令表达式 实际应用展示 ①[]条件表达式 [root@centos6-kvm3 scripts]# [ -e /etc/hosts ] &…
Shell脚本不同的运行方式会对当前Shell设置或者运行结果有所不同. 假设现在有一个脚本名为display_shell_script_args.sh,其内容如下: #!/home/pyf/bin/echoarg arg_infile other_arg_infile  echo $# while [ $# != '0' ] do echo $0 done echo $0 echo "Hello, shell!" echo -e "Hello, sh!" 这里的e…
Shell是用户与Linux或Unix内核通信的工具,shell编程指的并不是编写这个工具,而是指利用现有的shell工具进行编程,写出来的程序是轻量级的脚本,我们叫做shell脚本. Shell的语法是从C语言继承过来的,因此我们在写shell脚本的时候往往能看到c语言的影子. Shell脚本实在是太灵活了,相比标准的Java.C.C++ 等,它不过是一些现有命令的堆叠,这是他的优势也是他的劣势,太灵活导致不容易书写规范.     先简单介绍一下Shell: 什么是shell? Shell是一…
第一种方式:hbase shell test.txt test.txt:list 第二种方式:<<EOF重定向输入 我们经常在shell脚本程序中用<<EOF重定向输入,将我们输入的命令字符串作为一个执行程序的输入,这样,我们就不需要在那个程序环境中手工输入命令,以便自动执行我们需要的功能.将hbase的命令嵌入到shell中,可以在shell中如下书写: -------------------------------------- hbase shell << EOF…
再安全的加密也抵不过逆向,斗智斗勇吧,持续加密持续破解 1.简单的加密:gzexe file.sh 2.使用shc加密:下载地址:http://www.datsi.fi.upm.es/~frosal/ shc可以把shell脚本转换为一个可执行的二进制文件 下载shc-3.8.9b.tgz后tar -zxvf 解压,然后进入目录安装make install 生成二机制文件:shc -v -f test.sh直接./test.sh.x执行这个二机制文件即可 生成静态链接的二进制可执行文件 可以通过…
#!/bin/bash # 备份 MySQL 的 shell 脚本(mysqldump版本) # 定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签) # dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mysql 数据库) user=root passwd=123456 dbname=mysql date=$(date +%Y%m%d) # 测试备份目录是否存在,不存在则自动创建该目录 [ ! -d /mysqlbackup…
Shell函数 1.定义语法 标准写法: funciton funName () { order....... return n } 简化写法1: funciton funName { order....... return n } 简化写法2: funName () { order....... return n } 注意: 1)不加rueturn的情况下,函数返回码是函数中最后一条命令返回的退出状态码. 2)退出状态码必须是0~255 2.函数执行 1)不带参数函数:直接函数名    fun…
呈现数据 一.文件描述符 Linux系统将每个对象当做文件处理,这包括输入和输出进程.Linux用文件描述符来标识每个文件对象.每个进程最多可以有9个 文件描述符,bash shell保留了前三个文件描述符. 文件描述符                                  缩写                                                    描述 0-----------------------------------STDIN--------…
shell中的数学计算 一.使用方括号 #!/bin/bash a= b= c= res=$[$a * ($c-$b)] echo $res 二.使用(()) +)) ((i=+)) b=$((-*)) )) )) #计算a的平方 <)) #输出1 echo $((i++)) )) #产生一个不大于60的随机数 三.bc的用法 bc技术器实际上是一种编程语言,它可以识别: 数字(整数和浮点数)变量(简单变量和数组)注释(以#或C语言中的/* */开始的行)表达式编程语句(例如if-then语句)…
1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; then statement …. else statement …. fi 3.if …elif…elif…else 是多分支语句,使用格式如下: if condition ; then statement …. elif condition ; then statement ….. elif co…
两种解决方案:个人推荐第二种,使用crontab来定时执行任务   1.shell代码如下: nohup command &. 解释: 后台永久运行command命令. (nohup表示后台永远执行,不随终端退出而终止.&表示后台运行,随着终端退出程序而终止.两个一起就是后台永久运行了) #!/bin/bash #需要定时执行的程序 program=testapp #获取当前时间,例如20171129 <---> perDate=$(date "+%Y%m%d&quo…
管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第几段的意思,-c是以字符串为单位取出固定的字符串范围 ls -F | grep '/' -v | cut -d'.' -f 1 #在取出不是文件夹的文件后,通过分隔符‘.’来分割,取出不包括文件后缀的文件名 ls -F | grep '/' -v | cut -c 1- #取出第一个字符(包括第一个…
在使用shell的逻辑运算符"[]"使用时候,必须保证运算符与算数之间有空格. 四则运算也只能借助:let,expr等命令完成. 今天讲的双括号"(())"结构语句,就是对shell中算数及赋值运算的扩展.  1.语法:  ((表达式1,表达式2-))  2.特点:  (1)在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等.  (2)在双括号结构中,所有变量可以不加入:"$"符号前缀.  (3)双括号可以进行逻辑运算,四则运算 …