Linux shell脚本
Linux shell脚本示例
我心依依旧
这个作者很懒,什么都没留下…
展开
-
shell调试脚本
shell脚本调试最简单的方法是使用echo命令,在任何怀疑出错的地方打印任何变量。虽然shell脚本可以在任何地方插入echo命令,但是调试需要花费大量的时间。linux/unix Shell提供了一些用于调试脚本的选项,如下所示:-n读一遍脚本中的命令但不执行,用于检查脚本中的语法错误-v一边执行脚本,一边将执行过的脚本命令打印到标准错误输出-x提供跟踪执行信息,将执行的每一条命令和结果依次打印出来使用这些选项有三种方法:一是在命令行提供参数$ sh -x ./script.sh原创 2021-05-06 17:45:46 · 111 阅读 · 0 评论 -
Linux冒号命令(防误删)
Linux系统中的冒号(:)在bash中是一个的内建命令,而不单纯是一个分隔符,它的作用主要是空命令、参数扩展、重定向、注释等。格式:${parameter:-test}功能:如果parameter没有设置或者为空,替换为test,否则替换为parameter利用这一点可以防误删高危操作:rm -rf /\${parameter:-test}/*...原创 2020-04-26 18:32:51 · 312 阅读 · 0 评论 -
linux shell实现字符串截断的几种方法
方法一:利用shell中变量字符串替换原理:${parameter//pattern/string}用string来替换parameter变量中所有匹配的pattern参考文章: https://blog.csdn.net/u010003835/article/details/80749220#!/bin/bash string="hello,shell,split,test" ...原创 2020-04-03 10:37:00 · 814 阅读 · 0 评论 -
Linux shell列出指定目录下所有目录和文件,并忽略.log后缀名的文件
#!/bin/bashfunction echofile(){ if [[ ! $1 =~ \.log$ ]];then echo $1 fi}function getdir(){ for item in `ls $1` do filename=$1"/"$item if [[...原创 2019-07-11 17:08:57 · 4401 阅读 · 0 评论 -
expect: spawn id exp4 not open原因解释
脚本:#! /bin/bashauto_send(){/usr/bin/expect <<EOFset timeout 10spawn scp test.sh testhadoop@10.201.7.189:~expect { "yes/no" { send "yes\r";exp_continue } "password" {send "VMUSidJEkZgKm...原创 2019-06-21 14:54:01 · 23930 阅读 · 0 评论 -
shell脚本函数传参
函数可以提高代码复用,在python、java中比较常见。shell脚本也有函数,可以将一组命令集或语句形成一个可用代码块。定义格式函数名(){ command1 command2 ... commandN [ return value ]}函数返回值可以显示增加return语句;如果不加,则将最后一条命令运行结果作为返回值(一般为0,如果执行...原创 2019-06-15 21:27:26 · 4909 阅读 · 0 评论 -
expect的用法
安装yum install expect -y关于expectexpect #自动应答命令用于交互式命令的自动执行spawn #expect中的监控程序,其运行会监控命令提出的交互式问题send #发送问题答案给交互命令"\r" #表示回车exp_continue #当问题不存在时继续回答下边的问题expect eof #问题回答完毕退出expect环境inter...原创 2019-06-10 10:45:11 · 1339 阅读 · 0 评论 -
linux shell执行远程命令(命令行与脚本方式)
工作中经常需要登录到多台Linux服务器上进行远程操作,如果分别ssh到每台主机上再去执行很麻烦,因此能在集群某一台机器上进行集中管理就很好。以下介绍两种shell命令远程执行的方法,并简要举例在jmeter分布式压测中的运用。一、简单命令方式ssh user@remoteNode “cd /home ; ls”基本能完成常用的对于远程节点的管理了,几个注意的点:双引号,必须有。如果不加...原创 2019-06-09 14:23:06 · 13183 阅读 · 4 评论 -
Shell脚本如何传递参数
1、$0,$1,$2 通过命令行传递参数采用$0,$1,$2…等方式获取脚本命令行传入的参数,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数。example:脚本例子! /bin/bashecho "shell script name: $0"echo "first param:$1"echo "second param:$2"echo "..........and so ...原创 2019-04-14 19:33:03 · 7885 阅读 · 0 评论 -
Shell脚本中$(),``,eval
``和$()有什么区别?在shell脚本中,``和$()是用来完成命令替换的,先执行反引号或括号里面的内容,将结果代换到当前命令。例如:#! /bin/bashdate1=`date +%Y:%m:%d`date2=$(date +%Y:%m:%d)echo $date1echo $date2Shell脚本中的$()和``及eval区别:对于转义字符的处理有些不同ech...转载 2019-04-03 15:03:01 · 382 阅读 · 0 评论 -
linux shell输出文件每一行
1、使用readwhile read linedo echo "$line"done < /etc/passwd2、命令替换for line in `cat /etc/passwd`do echo test2$linedone原创 2019-04-03 12:20:51 · 2782 阅读 · 0 评论 -
linux shell 数组
学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。下面例子,遍历字符串类型数组中的每个元素。#! /bin/basharray=("zhangsan" "lisi" "wangwu")for item in ${array[*]}do echo $itemdone...原创 2019-04-01 13:42:27 · 127 阅读 · 0 评论 -
linux shell while循环
打印54321#! /bin/basha=5while [ $a -gt 0 ]do echo $a (( a-- ))done原创 2019-04-01 10:16:39 · 1177 阅读 · 0 评论 -
linux shell if控制语句
比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。一、示例#! /bin/basha=3if [[ $a -gt 2 ]]then echo "$a > 2"else echo "$a < 2"fi二、其他判断条件整数比较:-eq 等于,如:if [ “a"−eq"a" ...原创 2019-03-31 22:17:00 · 1617 阅读 · 0 评论 -
Linux shell case控制语句
linux shell case控制语句用于开关选项切换,常见于启动、停止、重启脚本。#! /bin/bashcase "$1" in "start") echo "start................" ;; "stop") echo "stop................." ;; "status") echo "s...原创 2019-03-31 18:15:20 · 572 阅读 · 0 评论 -
linux shell编程for循环
for循环在各种编程语言中比较常见,本文记录了Linux shell嵌套for循环。内层循环中的break语句可以终止内层循环和外层循环。#! /bin/bashfor i in {1..5}do for j in {1..5} do echo ${i}..${j} ...原创 2019-03-30 22:36:46 · 301 阅读 · 0 评论