shell脚本

shell_script1

倖福魔咒の 提交于 2020-04-02 07:32:55
1、简介 2、read 3、运算工具 4、if/then结构 5、while循环 6、for循环 一、简介 1、什么是shell shell是用户与系统交互作用的界面。shell是一种命令解释程序,同时也是一种高级程序设计语言 2、shell常见种类 Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 其中:Bash在日常工作中被广泛使用; 同时,Bash也是大多数Linux系统默认的Shell; 3、shell局限性 1.1、需要耗费大量资源的任务,特别是对执行速度要求较高的场合 1.2、涉及大量的数学计算 1.3.、关键性应用(数据库,网站等) 1.4.、设计图形或者GUI的应用 1.5.、需要直接访问硬件 1.6.、开发闭源的应用(相对于开源) 4、基础 文件系统:Linux 的文件系统是一个包含了目录和文件的分层的组织结构,位于最顶端的叫做根目录(root directory),用斜杠/ 来表示 目录: 是一种包含目录项的文件,每个目录项中都包含了文件名 文件名: 目录的内容称为目录项,目录项包含了文件名,只有两种字符不允许出现在文件名中:斜杠,空字符(ASCII

SHELL 中的变量

寵の児 提交于 2020-04-02 06:23:50
变量的分类 系统环境变量 系统本身所有,通常为大写字母 系统变量通过 set 或 declare 指令进行查看 UDV 变量(user defined variable ) 用户创建和维护,建议大写 原因: 避免冲突与混淆,因为 Linux 系统中命令全部采用小写的方式 变量的属性和定义 变量的属性   1) Shell 中所有变量定义都为字符串。   2) 变量区分大小写,如:foo 和 Foo 是两个不同的变量   3) 变量必须以字母或下划线开头,不得有", : "等特殊字符。 变量的声明 1) 变量的定义   变量名=值 (变量名与值之间”=”号 没有空格 )   举例: LANG=ab 2) 声明带空格变量   需要加上引号””   举例: Y="23 67" 3) 声明一个只读变量 readonly Y_UDV=guozi 4) 修改变量 修改环境变量  例: PATH=$PATH:/opt/bin   修改用户自定义变量 例: SRC=”guozi” 5)取消变量 unset SRC 变量的使用 变量前加“$”符号 echo $SRC echo ${SRC} echo "${SRC}" echo ${SRC}AA #{}称为界定符,用界定符可以直接在变量后面加文字 注:单引号时,变量不会被扩展(expand),将依照原样显示。 环境变量  

shell脚本进阶

淺唱寂寞╮ 提交于 2020-04-02 05:19:17
shell脚本进阶 一、shell脚本进阶之条件测试    在编写shell脚本时,经常需要对一些条件进行判断,可以使用测试命令test辅助完成测试过程。test命令测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值。 条件测试的基本格式有: 格式1 test EXPRESSION 格式2 [ EXPRESSION ] 注意:使用方括号时,条件两边必须加上空格。 常见的测试类型有 文件测试 数值测试 字符串测试 组合测试 文件测试 文件存在性及类别测试 -a FILE:同-e -e FILE: 文件存在性测试,存在为真,否则为假 -b FILE:是否存在且为块设备文件 -c FILE:是否存在且为字符设备文件 -d FILE:是否存在且为目录文件 -f FILE:是否存在且为普通文件 -h FILE 或 -L FILE:存在且为符号链接文件 -p FILE:是否存在且为命名管道文件 -S FILE:是否存在且为套接字文件 文件权限测试 -r FILE:是否存在且可读 -w FILE: 是否存在且可写 -x FILE: 是否存在且可执行 -u FILE:是否存在且拥有suid权限 -g FILE:是否存在且拥有sgid权限 -k FILE:是否存在且拥有sticky权限 文件属性测试 s FILE: 是否存在且非空 -t fd:

Jmeter之Bean shell使用(一)

流过昼夜 提交于 2020-03-31 08:32:19
说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/p/4949889.html 来源: http://blog.csdn.net/silencemylove/article/details/51373873 一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网: http://www.BeanShell.org/ 二、Jmeter有哪些Bean Shell 定时器:  BeanShell Timer 前置处理器:BeanShell PreProcessor 采样器:  BeanShell Sampler 后置处理器:BeanShell PostProcessor 断言:   BeanShell断言 监听器:  BeanShell Listener 三

十一 、Shell篇——Shell脚本

谁说我不能喝 提交于 2020-03-31 03:31:42
什么是Shell脚本 UNIX的哲学:一条命令只做一件事 为了组合命令和多次执行,使用脚本文件来保存需要执行的命令 赋予该文件执行权限 标准的Shell脚本要包含哪些元素 Sha-Bang,也就是第一行注释用什么shell解释该脚本 命令 "#”号开头的注释 chmod u+rx filename 可执行权限 例如: 进入test目录,查看目录内容:新建一个.sh文件,把命名输入进入 user1@SC02ZRC4KMD6N ~ % cat test.sh #!/bin/bash cd test ls user1@SC02ZRC4KMD6N ~ % chmod u+rx test.sh user1@SC02ZRC4KMD6N ~ % ./test.sh a.txt b.txt 执行命令 bash ./filename.sh ./filename.sh source ./filename.sh . ./filename.sh 不同执行方式的区别: (1)bash xx.sh  不需要给文件赋予可执行权限,在子进程中执行命令,,执行完回到父进程 user1@SC02ZRC4KMD6N ~ % cat test.sh #!/bin/bash cd test ls # 执行命令后,又回到当前目录 user1@SC02ZRC4KMD6N ~ % bash ./test.sh a.txt b

服务器上的Git

坚强是说给别人听的谎言 提交于 2020-03-30 13:13:53
前面的话   如果想与他人使用,除了使用Git来完成日常工作之外,还需要一个远程的Git仓库。尽管从技术上可以从个人的仓库里推送和拉取修改内容,但并不鼓励这样做,因为一不留心就很容易弄混其他人的进度。因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我们将这个仓库称为"Git服务器";代理一个Git仓库只需要花费很少的资源,几乎从不需要整个服务器来支持它的运行   远程仓库通常只是一个裸仓库(bare repository)——即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是Git的数据。简单地说,裸仓库就是你工作目录中.git子目录内的内容   本文将详细介绍服务器上的Git 协议   Git可以使用四种主要的协议来传输数据:本地传输,SSH协议,Git协议和HTTP协议。下面分别介绍一下哪些情形应该使用(或避免使用)这些协议   值得注意的是,除了HTTP协议外,其他所有协议都要求在服务器端安装并运行Git 【本地协议】   最基本的就是本地协议(Local protocol),所谓的远程仓库在该协议中的表示,就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如NFS)拥有访问权,或者比较少见的多人共用同一台电脑的情况。后面一种情况并不安全

shell编程之SHELL基础(1)

点点圈 提交于 2020-03-28 23:02:44
shell脚本基础 shell是一个命令行解释器,她为互用提供了一个想linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起。停止甚至编写一些程序。 shell还是一个功能相当强大的编程语言,易编写,易调试,灵活醒较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令 脚本的执行 1 echo输出命令 echo [选项][输出内容] 选项: -e : 支持反斜线控制的字符串转换 控制字符 作用 \a 输出警告音 \b 退格键,也就是像左删除健 \n 换行符 \r 回车健 \t 制表符,也就是tab \v 垂直制表符 \0nnn 按照八进制acsii表输出字符,其中0未数字零,nnn是三位八进制 \xhh 安卓十六进制输出输出字符 在echo中输出颜色 echo -e "\e[1;31m aaaa \e[0m" 30m = 黑色, 31m = 红色, 32m = 绿色,33m = 黄色 34m = 蓝色 , 35m = 洋红, 36买= 青色, 37m = 白色 2 第一个脚本 #i/bin/bash #i/bin/bash #the first program echo -e "\e[1;34m hello \e[0m" 3 脚本执行 赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh

shell脚本解析 -- oe-init-build-env

落爺英雄遲暮 提交于 2020-03-27 15:28:41
3 月,跳不动了?>>> oe-init-build-env #!/usr/sh if [ -z "$ZSH_NAME" ] && [ "x$0" = "x./oe-init-build-env" ]; then echo "Error: This script needs to be sourced. Please run as '. ./oe-init-build-env'" else if [ -n "$BASH_SOURCE" ]; then OEROOT="`dirname $BASH_SOURCE`" else OEROOT="`pwd`" fi OEROOT=`readlink -f "$OEROOT"` export OEROOT . $OEROOT/scripts/oe-buildenv-internal && \ $OEROOT/scripts/oe-setup-builddir && \ [ -n "$BUILDDIR" ] && cd $BUILDDIR unset OEROOT unset BBPATH fi 第一步,判断该脚本是否是用source或者.的方法运行的。 但是 [ "x$0" = "x./oe-init-build-env" ] 只能对./oe-init-build-env这种执行方式报错,对./yocto/oe-init-build

Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值意义

若如初见. 提交于 2020-03-27 09:34:57
复制文章: https://blog.csdn.net/helloxiaozhe/article/details/80940066 Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义说明 1.1、简要说明 ps: 你在Linux环境下多试下就明白了 $$ Shell本身的PID(ProcessID,即脚本运行的当前 进程ID 号) $! Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID 号) $? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误) $- 显示shell使用的当前选项,与set命令功能相同 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 $@ 跟$*类似,但是可以当作数组用 $# 添加到Shell的参数个数 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 1.2、脚本举例 我们先写一个简单的脚本

Linux Shell 通配符、元字符、转义符使用实例介绍

霸气de小男生 提交于 2020-03-27 03:15:18
说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例: #1 [chengmo@localhost ~/shell]$ ls a.txt b.txt c.old #2 [chengmo@localhost ~/shell]$ ls *.txt a.txt b.txt #3 [chengmo@localhost ~/shell]$ ls d*.txt ls: 无法访问 d*.txt: 没有那个文件或目录 从上面这个实例,不知道大家有没有发现问题呢。我们先了解一下,通配符相关知识,再分析下这个实例吧。 一、linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。当shell在“参数”中遇到了通配符时, shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。 总之,通配符 实际上就是一种shell实现的路径扩展功能。在 通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。 我们回过头分析上面命令吧