#!/bin/bash #设置环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" export PATH while getopts "c:i:" opt; do case $opt in c) count=$OPTARG ;; i) ips=$OPTARG ;; \?) ;; esac done tmp_fifofile="/tmp/ping.fifo"…
centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和${ } 和$(( )) 与  sh -n  sh -x  sh -v 第三十五节课 Shebang/Sha-bang在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类…
我们知道nc命令是一个网络工具.可以连接tcp/udp.也能模拟发送http请求. 现在介绍通过shell脚本,一条命令直接发送http请求. 命令如下,可以对下面的地址等信息自行修改: #!/bin/bash echo -e "GET /soucang/itemList.html HTTP/1.1\nHost:localhost\n\n" | nc 192.168.1.101 8080 echo -e "\n" 也可以将http请求返回的内容赋值给一个变量,然后再…
shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出 如: #/bin/sh local ret='sqlite3 test.db "select test from test;"' 或: local ret=$(sqlite3 test.db "select test from test;") 如果test.db被锁定,ret将为空,标准错误输出有信息“Error:database is locked”.…
shell脚本之seq命令 原文:http://blog.csdn.net/paoxiaohui/article/details/52830595 seq 用于生成从一个数到另一个数之间的所有整数. #seq 1 5  生成数字1到5 1 2 3 4 5 用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 选项:      -f, --format=FORMAT      use printf style floating-p…
# 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed 的命令就不往下执行了.测试过 实例1. shell脚本批量开启防火墙端口 [mysql@www ~]$ cat firewall.sh #!/bin/bash func1(){ firewall-cmd --zone=public --add-port=/tcp --permanent [ $?…
**shell脚本的执行方式: 方法一:首先赋予x权限,再输入相对路径或绝对路径,./testdot.sh或/root/shell/testdot.sh 方法二:sh testdot.sh(会新开一个bash,不同bash中的变量无法共享) 方法三:. ./testdot.sh(不会新开bash) **单引号与双引号:单引号屏蔽一切特殊符号,双引号可以屏蔽空格但无法屏蔽引用变量 **获取紫铜所有的变量:set **获取内核进程的结构树:pstree **获取用户的主目录:echo $HOME *…
什么是脚本? 脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看.编辑). 常见的脚本: JavaScript(JS,前端),VBScript, ASP,JSP,PHP(后端),SQL(数据库操作语言),Perl,Shell,python,Ruby,JavaFX, Lua等. 为什么要学习和使用shell? Shell属于内置的脚本 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学…
在写shell脚本的时候发现cd切换目录的时候无法切换,代码是下面的. #!/bin/bash #changedir.sh history cd /home/firefox sleep pwd 我仔细一想,我执行的时候是./changedir.sh来执行的,这样执行的话终端会产生一个子shell,子shell去执行我的脚本,在子shell中已经切换了目录了,但是子shell一旦执行完,马上退出,子shell中的变量和操作全部都收回.回到终端根本就看不到这个过程的变化.那么怎么验证上面的猜想呢?看…
在Hudson或者Jenkins中利用ant的exec 来调用shell命令,通过shell脚本来执行adb shell命令,可以正常执行,不会出现在ant中直接调用adb shell出现的假死情况. 其中shell 脚本也很简单 #!/bin/sh adb root adb shell /system/data/lib adb shell ./system/data/lib/helloworld 可以执行手机端中的程序进行测试.…
/etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh echo -e 相关转义符 \\ 输入\ \a 输出警告音 \b 退格,即向左删除一个字符 \c 取消输出行末的换行符,和-n选项一致 \e Esc \f 换页符 \n 换行 \r 回车 \t 制表,即Tab \…
对于一段包含cd 命令的shell脚本(test.sh): #!/bin/bash cd .. mkdir ./test 运行: sh ./test.sh 脚本运行时无法在上级目录建立test文件 此时用 . ./test.sh 即可…
tr命令用来进行对标准输入的内容做替换.例如 # echo 'HELLO WORLD!!!' | tr "A-Z" "a-z" hello world!!! 这里的"A-Z"."a-z"都表示集合,shell脚本中定义集合类型很简单,即指定集合序列即可,但是对于上边的情形,不得非输入所有集合类型,可以通过“开始字符-结束字符”方式进行集合定义.使用tr命令结合集合使用,可以解决很多复杂问题. 使用tr进行数据加密,解密: #…
一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂   建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行).  如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi  等来编写我们的s…
1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值. 1.2          #  井号.除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了. 1.3           “”  双引号.shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只表示一个井号“#”.但$仍然保持…
本文简要描述了在ubuntu系统下无法使用source命令的原因,及对应的两种解决方法,并在附录中引用一篇文章来详细解释source命令的用法 问题: 由于在交叉编译时,需要在当前shell内执行source命令来临时指定系统的编译环境为嵌入式环境.故希望通过编写一个shell脚本来自动执行编译命令,然而在脚本中通过source命令指定编译环境时,系统会提示找不到命令 原因: source命令是bash shell的内置命令,而ubuntu 默认用的是dash(基本POSIX标准的命令解释器),…
1.获取shell脚本的入参个数: $# 2.获取shell脚本的第n个入参的字符个数/字符串长度(注意这里的n需要替换为具体的数字,如果这个数字超过实际的入参个数,结果为0): ${#n}…
多命令一起执行 如果希望把几个命令合在一起执行, shell提供了两种方法.既可以在当前shell也可以在子shell中执行一组命令. 对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令. ()运算符 在子shell中执行一组命令,可以用命令分隔符(即";")隔开每一个命令,并把所有的命令用圆括号()括起来,最后一个命令后可以没有分号. 它的一般形式为:          ( 命令:命令:命令… ) 1 一条命令需要独占一个物理行,如果需要将…
在DOS命令状态下输入 :ping 202.105.135.211 -t (连续的对该IP地址执行Ping命令,直到被用户以Ctrl+C中断)就会得到下面的结果:Pinging 202.105.135.211 with 32 bytes of data:Reply from 202.105.135.211: bytes=32 time=93ms TTL=42Reply from 202.105.135.211: bytes=32 time=86ms TTL=42Reply from 202.10…
系统 重启 Mac OS X: 1 shutdown - r now 关闭 Mac OS X: 1 shutdown now 电源管理/省电 获取当前电源管理设置的信息 1 pmset -g 设置显示器无活动15分钟后关闭 1 sudo pmset displaysleep 15 让计算机在无活动30分钟后休眠 1 sudo pmset sleep 30 OS X 外观 禁用仪表盘(别忘了将仪表盘 Dock 图标拖动出来) 1 defaults write com.apple.dashboard…
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节. set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell. $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行.这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数. set命令用来修改 Sh…
#!/bin/bash a=(张三 李四 王五 赵六) ..} do . $((${i}+)) >dev/>&;then ))"号"${a[${i}]}"在线" else ))"号"${a[${i}]}"离线" fi done 这串shell代码实现了ping 某个IP地址所对应的那个IP所使用的人名是否在线 这里面主要涉及到的知识点有  变量.数组.循环 .if判断.算术运算 在这里循环和if我不多讲!…
#!/bin/bash rm -f result.txt cat ip.txt | fping > result.txt 2行代码就搞定,很方便,初学shell,很强大,问了下同事,但是shell的高并发还是没py的强大 效果: ps 如果提示fping这个命令没有找到的话,直接yum install fping就OK了…
跟着RUNOOB网站的教程学习的笔记 printf命令模仿C程序库里的printf()程序.printf由POSIX标准所定义,因此使用printf的脚本比使用echo有着更好的移植性. printf使用引用文本或者空格分隔参数,外面可以在printf中使用格式化字符串,还可以指定字符串的宽度,左右对齐方式等.默认不会像echo自动添加换行符,但是可以手动添加\n printf命令的语法: printf format-string [arguments...] 参数说明: format-stri…
跟着RUNOOB网站的教程学习的笔记 shell的echo指令与PHP的echo指令类似,都是用于字符串的输出.命令格式: echo string 1 显示普通字符串 echo "It is a test" 这里的双引号完全可以省略,后面的例子也是这样(双引号可以省略) echo It is a test 2 显示转义字符 echo "\"It is a test\"" 3 显示变量 read命令从标准输入中读取一行,并把输入行的每个字段的值都指…
先来给一个案例: #将old.sql文件中的符号“|”替换为“,”,并保存到test.sql文件中 sed "s/|/,/g" "old.sql"> test.sql #将test.sql文件中的每一行最后的符号“,”删除 sed -i 's/,$//g' test.sql #在test.sql文件中每行的开头添加左括号“(” sed -i 's/^/(&/g' test.sql #在test.sql文件中每一行的末尾添右括号“)” sed -i 's…
用途说明   在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了.tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中(read from standard input and write to standard output and files. Copy standard input to each FILE, and also to sta…
作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传…
#!/bin/bash echo "输入第一个数字"read Aecho "输入第二个数字"read B if [ $A -gt $B ] thenecho " $A 比较大" elif [ $A -lt $B ]thenecho " $B 比较大" elseecho "相同"fi #!/bin/bash for a in {100..200}dob=$(($a-100))if fping -c 1 192…
哪个能用就用哪个吧! 方法一, echo -e "newpwd\nnewpwd" | (passwd root) 方法二, echo "newpwd" | passwd root --stdin > /dev/null 2>&1 方法三, #如果密码中包含$字符,使用反斜线(\)进行转义echo root:newpwd123\$|chpasswd Openwrt | openwrt 编译时,如何指定root密码cat /etc/shadowroo…