首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SHELL(bash)脚本编程六:执行流程

bash命令的执行分为四大步骤:输入、解析、扩展执行。 本文将详述bash命令的一般处理过程: 如图所示 ? 输入 交互模式 在交互模式下,输入来自终端。...大括号扩展、单词分割路径扩展不会发生。 执行 不同类型的命令,bash执行方式有所差异。...复合命令 bash中每种复合命令都使用一个C函数来实现,功能包括执行恰当的展开(如for循环中关键词in后面的单词),执行特定的命令,根据命令的返回值来变更执行流程等等。...,execve()失败,此时,bash会判断该文件,如果该文件有可执行权限并且不是一个目录,则认为该文件是一个脚本,于是调用默认解释器解释执行该文件的内容。...7、执行完毕后,bash收集命令的返回值。 这些,就是bash执行命令的整个流程

1.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

使用Jenkins通过SSH插件远程控制主机执行脚本

192.168.1.20上准备好test.sh脚本文件。.../bin/bash > echo I am 192.168.1.20 > EOF [root@k8s-node2 ~]# cat shell/test.sh #!.../bin/bash echo I am 192.168.1.20 [root@k8s-node2 ~]# chmod +x shell/test.sh //添加脚本执行权限 插件安装  在主机...的Jenkins中【系统管理】—【管理插件】中,过滤出“SSH或者Publish over SSH插件”,然后直接安装插件,如图安装即可,下面会分开列出两个插件的配置;或者去官网下载插件的.hpi文件通过高级选项中手动安装也可以...构建项目  构建完成后,在左下角的构建历史处点击刚才那条构建的信息,然后点击“控制台日志输出”,就可以看到远程执行命令shell脚本的详细步骤信息了。

3.4K20

shell(二)

shell(二) 1.shell流程控制 1.1简单流程控制语句 1.1.1if判断语句 首先我们通过一个示例来展示单分支if语句: 需求:如果输入的参数为 man,那么输出您的性别为男。 #!...5.2生产脚本编写总结 生产简单脚本的编写流程:命令可执行-命令罗列-内容变量-功能函数-远程执行。 生产大型脚本的编写流程脚本框架-命令填充-安全完善。...大型脚本的安全功能完善:由内到外,功能安全-流程安全。 掌握 脚本调试方法 语法-n ,追踪-x。 5.2.1简单脚本编写 手工执行的命令一定要可执行。 命令简单罗列。 固定的内容变量化。...5.2.2复杂脚本编写 手工执行的命令一定要可执行。 根据发布流程编写脚本的框架。 将手工执行的命令填充到对应的框架函数内部。 增加日志功能,方便跟踪脚本历史执行记录。 主函数中逻辑流程控制好。...脚本的传参函数的传参要区别对待。 ?

95820

京东小程序CI工具实践

Tech 导读 本文从整体介绍了京东小程序CI工具的用途及工作流程,读者可以通过本文了解到一种全新的京东小程序上传方式,同时结合构建脚本流水线,可大大提高小程序的部署发布效率。...通过CI工具,开发者无需依赖小程序开发者工具即可实现京东小程序的预览、上传等操作。同时结合构建脚本流水线,可以支持代码包的远程部署,实现小程序CI/CD。...如果只是本地上传,CI工具的作用只是摆脱了版本预览上传对开发者工具的依赖,还是需要人为进行上传命令的执行。我们可以将CI工具流水线结合使用。...工作流程图如图7所示: 图7 CI工具结合流水线流程图 本地代码push到远程仓库后,流水线通过webhook监听到代码改动,进行代码下载,然后通过npm i进行依赖下载,最后运行upload...将小程序CI工具流水线结合,可以优雅地完成小程序代码的远程部署,开发者将本地代码上传后等待流水线运行完成,最后登录小程序控制台进行提审发布即可。

27910

expect shell 脚本记录

# 1. expect 自动化交互脚本 # 1.1. 介绍 expect是一个自动化交互套件,主要应用于执行命令程序时,系统以交互形式要求输入指定字符串,实现交互通信。 # 1.2....: 允许expect继续向下执行指令meout:指定超时时间,过期则继续执行后续指令 send_user: 回显命令,相当于echo argv参数数组:Expect脚本可以接受从bash传递的参数,可以使用...[lindex argv n] 获得,n从0开始,分别表示第一个1,第二个2,第三个3……参数 (argvn没有空格则表示脚本名称 ; 一般流程:spawn 启动追踪 —> expect 匹配捕捉关键字...由spawn启动的命令在结束时会产生一个eof标记,expect eof 即在等待这个标记 # 1.4. bash shell内加入expect脚本 使用<<-EOF ,引入expect脚本。 #!...expect 脚本文件执行必须使用 ./test_expect.exp。

81020

Shell expect用法描述

1. expect 自动化交互脚本 1.1. 介绍 expect是一个自动化交互套件,主要应用于执行命令程序时,系统以交互形式要求输入指定字符串,实现交互通信。 1.2....: 允许expect继续向下执行指令meout:指定超时时间,过期则继续执行后续指令 send_user: 回显命令,相当于echo argv参数数组:Expect脚本可以接受从bash传递的参数...,可以使用 [lindex argv n] 获得,n从0开始,分别表示第一个1,第二个2,第三个3……参数 (argvn没有空格则表示脚本名称 ; 一般流程:spawn 启动追踪 —> expect...由spawn启动的命令在结束时会产生一个eof标记,expect eof 即在等待这个标记 1.4. bash shell内加入expect脚本 使用<<-EOF ,引入expect脚本。 #!...expect 脚本文件执行必须使用 ./test_expect.exp。

41630

安恒信息提示漏洞:CVE-2014-6271 bash远程命令执行漏洞

今日爆出CVE-2014-6271 bash远程命令执行漏洞。bash是Linux用户广泛使用的一款用于控制命令提示符工具,导致该漏洞影响范围甚广。...同时,当HTTP服务开放CGI服务或其他地方引用bash时可直接导致远程命令执行漏洞。主要影响系统为ubuntu centos debian suse readhat等主流linux操作系统。...漏洞危害主要表现在:影响基于bash开放的服务、程序。当网站利用CGI执行bash后可导致攻击者远程执行系统命令,从而可以利用系统命令反弹shell之后进行内网渗透、挂马、篡改主页、脱库等行为。...ENV指令还允许在设置环境变量后进行指令执行,从某种程度上来说,ENV相当于一个指令执行的指令,同时还附带有临时设置环境变量的功能 ENV的指令执行走的是正常的BASH指令解析、执行流程,而在一个采取了安全配置的服务器上...2) 服务器提供了CGI脚本,当 CGI script被webserver执行的时候,CGI Script会去调用Bash 攻击者可以通过开启了CGI的httpd服务器进行远程代码执行 测试方法

1.1K50

Java代码自动部署

阶段3: 优点:由Jenkins工具进行代码的发布部署,规范了代码的发布流程,提供可视工具监听整个发布流程等。 缺点:对技术要求更高了,需要了解Jenkins工具,会编写Shell脚本等。...#原因:因为Jenkins执行完当前任务之后需要执行下一个任务,此时Jenkins会直接把tomcat进程杀掉, #因此在脚本中编写的tomcat启动命令是不会执行的。...最后一个&,则是让bash在后台执行。 如果想学习Java工程化、高性能及分布式、深入浅出。...#原因:因为Jenkins执行完当前任务之后需要执行下一个任务,此时Jenkins会直接把tomcat进程杀掉,#因此在脚本中编写的tomcat启动命令是不会执行的。...虽然目前自己的这些流程方案可能还有所欠缺,且还没有经过实际项目考验,但能学到很多实际的知识也足够了,比如Maven相关知识、Shell相关知识以及Jenkins相关知识,这些是只能通过自己动手慢慢去实践才能获取到的经验

2.7K20

写个简单的项目自动部署脚本

一、概述 在项目数量比较大和构建流程比较复杂的场景,我们一般会使用jenkins以及衍生产品来实现构建打包部署能力,但对于一些简单的项目小众场景,我们使用简单的脚本构建部署,也未必不是一个简单便捷节省成本的选择...ssh秘钥中: 这样服务器就可以通过git命令从远程仓库拉取代码了。...) 通过nohup java -jar命令后台运行服务,启动成功后打印启动成功日志 执行start.sh脚本打包部署: sh start.sh dev 通过脚本的输入日志可以看到服务已经打包部署成功了:...: 这样我们通过改造部署脚本也实现了java服务的代码拉取、编译打包docker容器启动。...三、扩展 考虑到jenkins以及衍生产品处理提供完善的流程化的部署能力,也会提供详细的部署记录以及通知能力,我们也可以将脚本进行改造,来提供相应的能力,比如记录什么时间出发了打包部署,部署成功失败的通知等

16110

SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

要看COMMAND,-it docker exec -it 容器名称或容器id/bin/bash 4.2.5 build.sh文件shell脚本详解 注意点1:经过测试动态变量的【等号】不能有空格.../usr/bin/env bash # 动态变量的【等号】不能有空格tab键置位,否则获取不了值,而且在shell脚本代码里面不支持空格格式化,支持tab置位格式化。.../bin/bash表示告诉终端使用bash解析器进行执行,而且只有第一行bash才有效。 #!...docker_server1 Shell脚本#!/bin/bash表示告诉终端使用bash解析器进行执行,而且只有第一行bash才有效。 #!.../bin/bash # 切换文件目录 cd ${serverPath} # 执行脚本 sh build.sh ${server} ${appName} ${version} ${port} ${

7.9K20

【Shell】环境变量 自定义变量 特殊变量

是系统提供的环境变量, 通过加载Shell配置文件中变量数据共享给Shell程序使用 2.环境变量的分类?...密码进入的Shell环境 或 执行脚本文件 注意:不同的工作环境加载环境变量流程不一样 环境变量初始化流程 1.全局配置文件 /etc/profile /etc/profile.d/*.sh /...目标 理解Shell环境变量的加载流程测试 能够知道环境变量应该配置在哪里 切换Shell环境执行脚本文件介绍 在执行一个脚本文件时可以指定具体Shell环境进行执行脚本文件, 这个就是切换Shell环境执行脚本...Shell登录环境执行脚本文件语法 sh/bash -l/--login 脚本文件 含义: 先加载Shell登录环境流程初始化环境变量, 再执行脚本文件 Shell非登录环境变量执行脚本文件语法...bash # 加载Shell非登录环境 sh/bash 脚本文件 # 直接执行脚本文件 含义: 先执行加载Shell非登录环境流程初始化环境变量, 再执行脚本文件 测试案例 需求 Shell登录环境会运行

50531

SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

/usr/bin/env bash # 动态变量的【等号】不能有空格tab键置位,否则获取不了值,而且在shell脚本代码里面不支持空格格式化,支持tab置位格式化。...SSH Publishers shell脚本#!/bin/bash表示告诉终端使用bash解析器进行执行,而且只有第一行bash才有效。 #!...5、多台机器免密远程登录&Jenkins部署流程详解 6.1 特别说明 以测试环境为例子进行说明 步骤流程几乎一样,唯一是在SSH Publishers 源码存放路径不一样,测试环境部署目标机器是与Jenkins...docker_server1 Shell脚本#!/bin/bash表示告诉终端使用bash解析器进行执行,而且只有第一行bash才有效。 #!.../bin/bash # 切换文件目录 cd ${serverPath} # 执行脚本 sh build.sh ${server} ${appName} ${version} ${port} ${

9.3K40

如何在远程服务器上运行Jupyter Notebooks?

如果处于这种情况,可以通过在笔记本电脑上编写一个python脚本来设置实验,在数据的一小部分上运行它来验证它是否可以运行,将它复制到远程服务器,然后从命令行执行它。...这是个人偏好;将本地远程笔记本放在不同的端口上,以便更容易地查看代码运行的位置。 要在远程服务器上执行命令,我们运行组合命令。...梳理你的工作流程 记住所有这些命令可能非常麻烦。幸运的是,我们可以通过为每个命令创建bash别名来简化工作。...现在,您可以使用终端中的“远程笔记本启动”远程笔记本停止”命令分别启动远程笔记本服务器(设置端口转发)并将其关闭。...总结 在这篇文章中,我向您展示了如何使用bash命令在远程服务器上启动、访问停止Jupyter Notebook,并展示了如何创建bash别名来简化操作。

3.8K20

Jenkins 搭建与集群发布环境构建

Jenkins 作为一款软件开发的神器,能帮团队很优雅地解决编译发布等工作。支持超多的第三方系统软件,自定义 Shell 脚本,丰富的插件,可以让你游刃有余地完成很多自动化的工作。   ...配置 jenknis 的私钥,远程服务地址端口等等。 ?   特别留意Remote Directory,jenkins 推送过去的文件都会出现在这个目录,设置远程服务器的绝对路径有可能无效。...测试环境产品环境应该使用不同的任务,因为服务会部署到不同的机器。执行流程也可能有差异。 1.新建 FreeStyle 项目 ? 2....发布到远程服务器   添加一个构建后的操作,Send build artifacts over SSH   推送文件到远程机器,在远程机器执行备份重启 ?   ...Exec command 意思就是在文件全部发送到远程机器,执行以下的脚本。建议先备份之前的工作目录,方便回滚代码   你可以配置多台机器完成部署工作  5.

66720

Apache Ant 实现自动化部署

我们需要什么样的流程 我们需要什么样的流程或者什么样的流程才是最理想流程? 我认为: 开发人员不要做与开发无关的事情,代码写完就与开发没有半点关系了。通知测试人员,代码已经完成。...操作系统部署 无人值守安装 通过无人值守脚本安装操作系统,减少人为安装造成的差异 运行环境 统一配置运行环境,开发库以及版本统一 应用服务器统一 应用服务器版本,安装标准,配置文件都需要统一,减少差异...程序部署 实现应用程序自动部署,首先你要清楚自动部署所需要的流程,部署一个流程通常是这样的: 过程 2....自动部署步骤 初始化 建立工作环境,例如目录,检查所需环境 获取 从版本库指定分支中获取代码并保存到本地 编译 编译可执行代码 配置 处理配置文件 备份 备份应用程序 停止 服务服务 部署 部署应用程序到目的主机...运行环境 准备一个全新的的服务器,最小化安装CentOS 7操作系统,然后运行下面脚本初始化 curl -s https://raw.githubusercontent.com/oscm/shell

1.3K40

详解SSH 远程执行任务的方法

通过重定向 stdin,本地的脚本 test.sh 在远程服务器上被执行。...要想在这种情况下(远程执行本地的脚本)执行带有参数的脚本,需要为 bash 指定 -s 参数: $ ssh nick@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld...在上图的最后两行,输出的是 “bash “helloworld” 分别对应 0 1。...执行远程服务器上的脚本 除了执行本地的脚本,还有一种情况是脚本文件存放在远程服务器上,而我们需要远程执行它! 此时在远程服务器上用户 nick 的家目录中有一个脚本 test.sh。...真棒,最后两行 “/home/nick/test.sh” “helloworld” 分别对应 0 1。 总结 本文通过 demo 演示了 ssh 远程操作的基本方式。

2.5K21
领券