本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
 
0

Linux Shell 函数

发表者:admin分类:Shell编程2020-10-15 16:09:25 阅读[312]
Shell 函数linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()] { action; [return int;] }说明:1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255下面的例子定义了一个函数并进行调用:#!/bin/bash # author:菜鸟教程 # url:www.runoob.com demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"输出结果:-----函数开始执行----- 这是我的第一个 shell 函数! -----函数执行完毕-----下面定义一个带有return语句的函数:#!/bin/bash # author:菜鸟教程 # url:www.runoob.com funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum ...
 
0

AWK中使用 while,for 循环

发表者:admin分类:Shell编程2020-07-21 11:02:21 阅读[256]
Using Loops (while, for) in awk scripts,AWK中使用 while,for 循环 The awk programming language contains many of the programming concepts that are used in shell scripting. Conditionals, such as the if statement and loops, such as the following can also be used in awk programming.The while loopThe do while loopThe for loopThe if StatementThe if statement can have two branches: an if branch and an else branch. If the condition is true, the if branch is executed; if the condition is false, the else branch is executed.if (condition) { statements } else { statements }You can nest if statements. When examining nested if statements and one or more of the if statements has an else statement, it is difficult to know with which if the else is operating. The simple rule is: Each else works on the closest if that does not yet have its own else; for example:if (condition) { if (condition) { statements } else { statements } }In th...
 
0

Shell 基本运算符

发表者:admin分类:Shell编程2020-06-01 15:21:42 阅读[432]
Shell 基本运算符Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):实例#!/bin/bashval=`expr 2 + 2`echo "两数之和为 : $val"运行实例 »执行脚本,输出结果如下所示:两数之和为 : 4两点注意:表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。算术运算符下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:运算符说明举例+加法`expr $a + $b` 结果为 30。-减法`expr $a - $b` 结果为 -10。*乘法`expr $a \* $b` 结果为  200。/除法`expr $b / $a` 结果为 2。%取余`expr $b % $a` 结果为 0。=赋值a=$b 将把变量 b 的值赋给 a。==相等。用于比较两个数字,相同则返回 true。[ $a == ...
simple-log博客程序转换成zblog后,关于mysql数据库中的文章内容HTML转义字符的处理方法  先是将博客数据中的 blog表中的title,content,blog_id,cat_id,user_id,add_tim,views等能用的数据,可以先出来,作个csv或是xls表格,再添加相应的字段与数据到表格中,最后导入到zblog中的zbp_post表中。 这里访问博客文章,发现全是HTML代码,因为文章内容存到数据库时作了字符转义,解决方法只能采取1,修改php程序,显示文章时作字符转义。2,在表中将log_content字段中的内容替换掉。 我这里只会采用第二种了。Mysql代码替换HTML转义字符,具体如下: UPDATE zbp_post pSET p.log_Content = REPLACE (log_Content, '&lt;', '<'), p.log_Content = REPLACE (log_Content, '&gt;', '>'), p.log_Content = REPLACE (log_Content, '&amp;', '&'), p.log_Content = REPLACE (log_Content, '&quot;', '"')WHEREp.log_ID <> '2181'AND (p.log_Content LIKE '%&lt;%'OR p.log_Content LIKE '%&gt;%'OR p.log_Content LIKE '%&amp;%'OR p.log_Content LIKE '%&quot;%') 运行命令后,发现除...
sed 替换匹配开头字符的行配置文件/etc/config.txt中有一行是version=xx.xx.xx每次进行版本发布,需要重新填写这个值,可以用shell脚本中,加入sed命令来完成新版本号的替换#首先定义一个新版本号的变量var="version=6.1.1"sed -i '/^version=/c'$var'' /etc/config.txti :直接修改读取的文件内容,而不是输出到终端。^表示一行的开头sed匹配某一行开头,替换整行内容sed -i '/^cloud_server/ccloud_server_ip = update' name.txt[root@centos8-38 opt]# cat sed.txt coud_server xxdfdkjjjj1111 3333coud_server 3333coud_server dddd 3333[root@centos8-38 opt]# coud="cloud_server=1111"[root@centos8-38 opt]# [root@centos8-38 opt]# sed  '/^coud/c'$coud'' sed.txt cloud_server=1111cloud_server=1111cloud_server=1111sed 匹配部分替换[root@centos8-38 opt]# sed  's/dddd/gggg/g' sed.txt coud_server xxdfdkjjjj1111 3333coud_server 3333coud_server gggg 3333sed 匹配行中部分内容,替换整行[root@centos8-38 opt]# sed  '/.*dddd.*/c'$coud'' sed.txt coud_server xxdfdkjjjj1111 3333coud_server 3333cloud_server=111...
shell添加字符到指定行的行首或行尾使用sed 命令给匹配行的行首或行尾添加字符。比如给ansible中的匹配以35结束的行尾添加端口号,使用以下命令解决。[root@k8s ~]# sed 's/35$/&\ ansible_ssh_port=8080/g' -i /etc/ansible/hosts[root@k8s ~]# [root@k8s ~]# cat /etc/ansible/hosts |tail -3[92cto]149.129.94.35 ansible_ssh_port=8080用sed命令在行首或行尾添加字符的命令有以下几种:假设处理的文本为test.file在每行的头添加字符,比如"HEAD",命令如下:sed 's/^/HEAD&/g' test.file在每行的行尾添加字符,比如“TAIL”,命令如下:sed 's/$/&TAIL/g' test.file运行结果如下图:几点说明:1."^"代表行首,"$"代表行尾2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了例:3.如果想导出文件,在命令末尾加"> outfile_name";如果想在原文件上更改,添加选项"-i",如4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令:sed '/./{s/^/HEAD&/;s/$/...
可直接复制到/etc/init.d/tomcat ,添加执行权限,使用service tomcat restart 启动#!/bin/bash### BEGIN INIT INFO# Provides:          tomcat# Required-Start:    $remote_fs $syslog# Required-Stop:     $remote_fs $syslog# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: tomcat-server daemon# Description:       tomcat-server daemon### END INIT INFO## chkconfig: - 95 15# description: Tomcat start/stop/status script export JAVA_HOME=/usr/local/jdkexport JRE_HOME=/usr/local/jdk/jreexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH #CATALINA_HOME is the location of the configuration files of this instance of TomcatCATALINA_HOME=/usr/local/tomcat #TOMCAT_USER is the default user of tomcatTOMCAT_USER=root #TOMCAT_USAGE is the message if this script is called without any optionsTOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus...
服务器放于防火墙后内网中,一直收集信息与日志比较复杂,手动巡检太慢,于是搞个脚本定时收集硬件,网络,系统与应用的错误信息,关于阵列卡的日志,开始一直使用单条命令来将日志转到别的地方,但是在脚本运行时将输出转到别的文件中,一直报错,脚本没法运行,于是采用这种方法,就可以将内容输出到别的文件了。/opt/MegaRAID/storcli/storcli64 -FwTermLog -Dsply -aALL | grep -E ^`date +%D -d ' -1 day'`\|^`date +%D` |grep -E 'error|Error|Err|failure' > /var/log/raid_log.txtif [ -s /var/log/raid_log.txt ]then  echo "主机RAID日志错误日志:"  cat /var/log/raid_log.txt  echo ""fi
    总共5页,当前第1页 | 页数:
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5