shell脚本

shelll高级编程【实战】(1)

匆匆过客 提交于 2020-02-11 16:01:23
shell优势在于处理操作系统底层业务,2000多个命令都是shell的支持。 一键安装,报警脚本,常规业务操作,shell开发更简单快速。 1- 常用操作系统默认shell linux: Bourne Again shell(bash) Solaris和FreeBSD: Bourne shell(sh) AIX: Korn shell(ksh) HP-UX:POSIX shell(sh) 查看系统默认shell: root@demo:~# echo $SHELL /bin/bash 或者 root@demo:~# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash 来源: https://www.cnblogs.com/lemanlai/p/12294964.html

[shell]流程控制----case语句

若如初见. 提交于 2020-02-11 06:05:06
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。 例: g2_user=0 g2_userdebug=0 g2=0 case $1 in g2_user) g2_user=1 ;; g2_userdebug) g2_userdebug=1 ;; g2) g2=1 ;; *) echo "Wrong param for compile module!" echo "The param can be one of below:" echo "g2_user;g2_userdebug;g2" exit 1 esac 上面的脚本会取脚本执行时所输入的第一个参数的值,与每一种模式进行匹配: 输入不同的内容,会有不同的结果

shell的case用法

折月煮酒 提交于 2020-02-11 05:27:05
今天给大家简单介绍一下结构条件语句的用法,实际上就是规范的多分支if语句,如下: case语法: case "字符串变量" in   值1)指令1... ;;   值2)指令2... ;; ......    *)指令3... esac -------------------------------------------------------------------------------------- ok,我们可以换一种方式理解: 中文编程语法: case "找女朋友条件" in   有房)嫁给你... ;;   你爸是李刚) 嫁给你... ;;   有上进心) 可以考虑先做朋友... ;;   *)good bye bye! ... esac --------------------------------------------------------------------- 下面我们拿根据菜单选项手机充值脚本一个例子来测试一下效果: 测试1:根据用户的输入值判断 是哪个数字,给出相对应的服务或提示信息 1 [root@bqh-117 scripts]# vim case1.sh 2 #!/bin/sh 3 #date:2019-04-20 4 #maill:1147076062@qq.com 5 #author:aゞ锦衣卫 6 #script function

set -x 调试shell

浪子不回头ぞ 提交于 2020-02-11 04:41:58
在上面的结果中,前面有“+”号的行是shell脚本实际执行的命令,前面有“++”号的行是执行trap机制中指定的命令,其它的行则是输出信息。 shell的执行选项除了可以在启动shell时指定外,亦可在脚本中用set命令来指定。 "set -参数"表示启用某选项,"set +参数"表示关闭某选项。有时候我们并不需要在启动时用"-x"选项来跟踪所有的命令行,这时我们可以在脚本中使用set命令,如以下脚本片段所示: 1 2 3 set -x    #启动"-x"选项 要跟踪的程序段 set +x     #关闭"-x"选项 来源: https://www.cnblogs.com/kakaisgood/p/11093207.html

ansible常用模块实例

流过昼夜 提交于 2020-02-10 22:33:59
Command 模块: Command:在远程主机执行命令,默认模块可忽略-m。 Command:模块不支持变量,管道符,&,$,echo >等需要使用shell模块。 ansible all -m command -a 'systemctl restart network' 重启主机清单的所有主机的网络(以上是完整的写法)。 可以省略-m,因为它时默认的模块。 ansible all -a 'systemctl restart network' ansible web -a 'ls -l /tmp' (查看web组tmp目录下面有哪些文件) ansible all -a 'mkdir -p /data' (所有主机创建/data目录) ansible all -a 'df -hT' (查看所有主机的磁盘使用率) 查看命令的帮助:ansible-doc command 详细参数 ansible all -a 'removes=/data/test.txt rm -rf /data/test.txt' removes:如果这个文件不存在则不执行,文件存在则执行 ansible all -a 'ls -l /data/' (首先查看目录为空) Ansible all -a 'creates=/data/aa.txt touch /data/aa.txt' creates

Linux04__Shell

好久不见. 提交于 2020-02-10 19:55:27
一、Shell基础 1.1 Shell概述   Shell是一个命令行解释器,介于内核和程序之间。(硬件>内核>Shell命令解释器>外层应用程序);   Shell是解释执行的脚本语言,主要分为B shell和C shell,现主要用的是B shell。 1.2 Shell第一个脚本 vi hello.sh '''''' #!/bin/bash echo "hello world" '''''' chmod 755 hello.sh ./hello.sh 1.3 Bash基本功能 #1 历史命令 history !! #重复执行上次的命令 !111 #重复执行历史中第111条命令 !vi #重复执行历史中最后一条以vi开头的命令 #2 命令别名 alias ll='ls -l'   bash快捷键   输入输出重定向:   多命令输入和管道符     用法:./configure && make && make install        ls /root/test && echo yes || echo no   管道符:命令1的正确输出作为命令2的操作对象   通配符 1.1 Shell概述 1.1 Shell概述 来源: https://www.cnblogs.com/koafan-zou/p/12292178.html

Shell case esac语句

ぐ巨炮叔叔 提交于 2020-02-10 17:51:55
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。 case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command1 command2 command3 ;; esac case工作方式如上所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。 下面的脚本提示输入1到4,与每一种模式进行匹配: echo 'Input a number between 1 to 4' echo 'Your number is:\c' read aNum case $aNum in 1) echo 'You select 1' ;; 2) echo 'You select 2' ;; 3) echo 'You select 3'

shell 预定义变量

余生长醉 提交于 2020-02-10 15:20:40
echo "上一次后台pid is $!" echo "当前进程pid is $$" echo "last command return code is :$?" echo "bash file name is $0" echo "all var is: $*" echo "var number is : $# " ===========gold line of out========= 上一次后台pid is 当前进程pid is 53971 last command return code is :0 bash file name is echo_var.sh all var is: 1 44 test this var number is : 4 获取脚本name和脚本目录: basename filepath dirname filepath 来源: https://www.cnblogs.com/SunshineKimi/p/12291013.html

beaglebone_black_学习笔记——(3)点亮LED之shell命令

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-09 19:06:38
这次改变一下笔记的结构,直接上图。点亮LED永远是学习MCU,ARM,FPGA的入门例程,可以说是经典例程。这里笔者也从点亮LED开始开始ARM学习之旅。 接下来就开始点亮LED之旅,在开始之前需要向读者说明:本文作者也是一个ARM初学者,学习过程中也是在网上查找各种资料,最后总结于此。可以确定实验的过程中有好多地方笔者自己也是没有搞明白的,所以请读者原谅不能写的太透彻。 第一步:要点亮LED,首先需要了解GPIO的硬件位置,这样才能去操作相应的IO口,实现点灯目的 1、连接好bb-black之后,等待系统启动之后在PC机的浏览器里面输入192.168.7.2就可以访问开发板的服务器了,在这里可以找到许多的硬件资料,同样也可以学习另外一种JS编程,总之,这里有好多对初学者有用的资料。 2、如下图,为开发板扩展口的GPIO分布。在本次实验中,笔者像其他初学者一样选择GPIO_44这个引脚作为本次实验的目标引脚。可以发现GPIO_44对应P8的12引脚,同时将P8的2脚作为接地引脚。 3、笔者喜欢从零开始搭建开发平台,手头也没有现成的LED灯模块,只好用面包板搭建一个简单的电路来实现了。如下图所示为LED灯的电路图,只需要一颗330的电阻和一颗红色发光二极管即可。 4、了解原理图之后,接下来开始在面包板上连线。如下图所示连接好电路图。完成这一步就可以操作LED了。 第二步

shell的脚本运行

微笑、不失礼 提交于 2020-02-07 21:06:27
1.shell脚本的构成 名称 说明 vim script.sh 用vim编写脚本 #!/bin/bash 脚本使用的解释器,通常用幻数“#!“指定;#!/bin/bash 幻数:脚本执行时最先开启的程序 #AUTHOR 脚本作者 #DATE 脚本创作时间 #Mail 脚本作者联系方式 #VERSION 脚本的版本 2.shell脚本的调试 sh -x script.sh #可以查看shell脚本的运行状况,适用于所有脚本 vim script.sh #shell脚本必须拥有x权限 #!/bin/bash -x #可以检测shell脚本的运行状况,在我的desktop虚拟机上,此版本不能使用 vim test.sh #编辑tset.sh脚本文件 写入内容: date cal cat 1 2 3 sh -x script.sh #可以查看shell脚本的运行状况,适用于所有脚本 可以看到,开头带加号的行都是运行成功并且完成输出,由于cat命令没写文件,则无法查看,cat命令还占用了终端,ctrl+c 关闭进程,释放终端 3.shell脚本的执行 sh script . sh source script . sh . script . sh chmod + x script . sh #前三种执行脚本的方法都不需要加可执行权限,第四种方法需要给脚本一个可执行权限才能运行脚本 . /