问题描述: 今天需要修改一些bash脚本,因为考虑到pycharm里面能够直接写,而我用pycharm比较多,所以直接用pycharm写了,由于改的那个bash脚本是别的同事写的,里面的缩进都是用的Tab制表符,我直接复制了过来,导致脚本里面出现了空格和Tab混用的结果,一度报错(我的pycharm设置的是4空格代替Tab的),瞅了半天也没瞅出问题来,后来同事提醒了一下,让我把Tab都替换成4空格. 但是问题来了,几百行的bash,一个个的手工去删去替换...有点累,故选择了好用的工具notep…
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \m…
在执行一个shell脚本时,遇到了“-bash: ./killSession.sh: /bin/bash: bad interpreter: Text file busy”错误提示,如下所示: [oracle@DB-Server bin]$ ./killSession.sh      -bash: ./killSession.sh: /bin/bash: bad interpreter: Text file busy 此时只需要在#!/bin/bash,加一空格#! /bin/bash即可解决问…
原创文件,欢迎阅读,禁止转载. 例子中是把 finish 前一行的 "yes" 改成 "YES"有一个方法就是利用sed+awk一起来完成. zjk@zjk:~$ cat a.txt line is yes line is yes line is yes line is yes finish line this line is no this line is no #//用awk找到匹配行号算出要修改的行 zjk@zjk:~$ awk '/finish/{print…
Notepad++中,常常需要将一个Tab制表符转换成4个空格.这种情况大多发生在对空白检查严格的情况下,比如Python程序. 设置 → 首选项 → 制表符设置 → 勾选“ 转换为空格 ”.…
Linux Mint中写了一个简单的shell脚本,利用for..do..done结构计算1+2+3......+100的值,结果执行"sh -n xxx.sh"检测语法时总是报错,但在PC机上可正常运行: 脚本: #!/bin/bash #information PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Please input a…
shell判断一个变量是否为空方法总结 https://www.jb51.net/article/154835.htm 1.判断变量 复制代码代码如下: read -p "input a word :" wordif  [ ! -n "$word" ] ;then    echo "you have not input a word!"else    echo "the word you input is $word"fi 2…
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \m…
1)问题现象: 在ubuntu下执行以下脚本( while_count),报错: -bash: ./while_count: /bin/bash: bad interpreter: Text file busy 2)问题原因: This happens because the script file is open for writing, possibly by a rogue process which has not terminated. 3)解决办法: Solution: Check…
需求描述: 在写脚本中需要这么个需求,需要对一个列表中的值进行循环 比如,列表中的值mysqld,zookeeper,hbase 简单来说,for基于列表值的循环. 脚本测试过程: 1.测试脚本 #!/bin/bash for i in {mysql,zookeeper,hbase} do echo $i done 或者 #!/bin/bash for i in mysql zookeeper hbase do echo $i done 2.脚本执行结果 [root@redhat6 ~]# ./…
开发规范书:http://pan.baidu.com/s/1dESdyox 1.点击 window->preference-,依次选择 General->Editors->Text Editors,选中右侧的 insert space for tabs;如下图所示,保存,第一步完成: \ 2.点击 window->preference-,依次选择 Java->code style ->formatter,点击右侧的editor,选则左侧 tab policy的值为spa…
介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式:      for 变量 in 列表;do         语句1;         语句2;         ...      done     例1.写一个脚本,添加10个用户,并让每个用户的密码同用户名] 复制代码代码如下:        #!/bin/bash        for I in {1..…
监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1:监听3306端口 方法2:查看mysqld进程 注意注意:如果使用进程过滤的话,脚本名称如果里面包含mysql的话,脚本执行有坑,切记!!!因为会把脚本也grep了一次,导致结果不准确: 执行结果如下: 方法3:双保险,进程和端口都成功才算mysql服务正常 方法4:使用客户端登录mysql执行命…
实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #!/bin/bash #author Liuyueming . /etc/profile #开始没有加这个环境变量 for i in {10..35} do n=`ifconfig|grep 10.13.0.${i}|wc -l` #循环取ip并计数 # echo `ifconfig|grep 10.…
(转载): 在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh:这三种方法有什么不同呢?我们先来了解一下在一个shell脚本中如何调用另外一个shell脚本,其方法有 fork    exec    source. 1.fork  ( /directory/script.sh) : 如果shell中包含执行命令,那么子命令并不影响父级的命令,在子命令执行完后再执行父级命令.子级的环境变量…
一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim  test.sh     ##shell脚本一般都是以.sh结尾三.执行方法  1.sh  test.sh              ##不执行开头的的命令  2.chmod +x  test.sh    /mnt/test.sh             ##执行的时候会先执行以#开头的第一句 四.脚本的调示  sh  -x  test.sh  …
在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: http://www.dbpoo.com/sublime-text2-tab/ http://www.micmiu.com/software/common/sublime-text2-tab-space/ 链接页面分别介绍了如何在 Preference --> Settings-User 或 Prefe…
用shell生成一次性计划任务,这个任务就是执行另一个脚本 #!/bin count=`grep "sh /usr/local/sbin/iptables.sh" /var/spool/at/* --exclude-dir=* |wc -l` cron_admin=`grep "sh /usr/local/sbin/iptables.sh" /var/spool/at/* --exclude-dir=* |awk -F ":" '{print $…
最近工作中,产品组的同事给出的数据里面都是小写字母 ,但是引擎组的同事要求他们拿到的从数据里面解析出的结构体里面存储的要都是大写结构,这让我们数据预处理组很尴尬啊,,所以在写了个这么样的脚本,在解析数据之前,先使用shell脚本处理一遍数据...…
关于shell脚本的基本语法 整理于:2014-03-31,何俭飞,mymladdr@sina.com 一.执行 1.shell脚本如果要被执行,一般地必须要有执行权限"x"(除了使用特殊的执行方式不需要外) 2.shell脚本执行的方式有以下几种: ①--参数式执行1:/bin/sh createFiles.sh(不需要x权限),简写为"sh createFiles.sh" ②--参数式执行2:/bin/bash createFiles.sh(不需要x权限),简写…
常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' filename 3. 删除当前行与下两行的内容: sed -i '/aaa/{N;N;d;}' filename 依次类推,删除三行,则为{N;N;N;d;},分析知:N为next 4.得出以空格为分割的字符串中单词的个数,即统计个数: awk ' { print NF } ' 如显示字符串VALU…
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source Code)转换成目标代码(object code),便能直接通过计算机来执行. 编译型语言的好处是高效,缺点是:他们多半运作于底层,所处理的是字节.整数.浮点数或是其他机器层级的对象.而脚本语言Shell通常是解析型(interpreted)的.这类程序的执行,是由解析器(interpreter)读入…
[脚本1]打印形状打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n $n` do for ((j=$n;j>i;j--)) do echo -n " " done $i` do echo -n "* " done echo done # 倒直角三角形 read -p "Please input the length:…
Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法. 先从expr命令开始梳理,expr 引出通用求值表达式,可以实现算术操作.比较操作.字符串操作和逻辑操作等功能. 1) 计算字符串长度字符串名为string,可以使用命令 ${#string} 或 expr length ${string} 两种方法来计算字符串的长度.若string中包括空格,…
本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n for i in `seq 1 $n` do for ((j=$n;j>i;j--)) do echo -n " " done for m in `seq 1 $i` do echo -n "* " done e…
Shell脚本 Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令.        换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管…
问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机.这样一来,本地与服务器之间的一些文件传输变得非常不便.经过咨询,运维教了我一招: $ nc -l 8080 > filename $ nc yunhai.xxxxxxxx.xxxxx.com 8080 < filename 使用 nc 建立连接来传输文件,第一行命令在服务器执行,第二行命令在本地执行,它的参数就是远程服务器的 host,运行完成后,将文件从本地拷贝到远程.这样确实可以工作,而且…
1.命令替换:`` 反向单引号,也称重音符.键盘上和~键在一起的那个键呦,千万不要敲成单引号. A. 使用了``后,shell首先替换输出中``括起来的date命令,然后执行整个输出命令. B.命令替换还可以用于在变量中存储命令输出,如下: 变量ctr将包含当前目录中名字以.txt结尾的文件的计数. 2.expr 大部分shell不支持数字变量,所有变量会被作为字符串.如var=25,变量var中包含的是字符2和字符5组成的字符串,而不是数字25. Expr命令用来评估算术表达式,命令的输出发送…
原文网址:http://zhu8337797.blog.163.com/blog/static/170617549201122512712136/ 命 令 选 项 功 能 bash –x 脚本名 回显 在变量替换之后.执行命令之前,显示脚本的每一行 bash –v 脚本名 详细 在执行之前,按输入的原样打印脚本中各行 bash –n 脚本名 不执行 解释但不执行命令 set –x 打开回显 跟踪脚本的执行 set +x 关闭回显 关闭跟踪功能 --------------------------…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除键)…