shell(1)构建基本脚本

目录

1.一个命令行中使用多个命令

2.创建shell脚本文件

3.echo命令

4.用户变量

5.输出重定向

6.输入重定向

7.管道(piping)命令

8.数学运算($[operation])


1.一个命令行中使用多个命令

可以将shell多个命令串起来,放在同一行中,彼此间用分号隔开。

注意:这种方法虽然能将任意多个命令串联在一起使用,但是不能超过最大命令行字符数255.

缺陷:每次运行,都需要输入整个命令。优化:将这些命令组合成一个简单的文本文件,运行时只需要运行该文本文件(即shell脚本文件)。

2.创建shell脚本文件

在创建shell脚本文件时,必须在文件的第一行指定要使用的shell。其格式为:

#!/bin/bash

shell脚本中,#是行注释符号,shell不会处理注释掉的内容,但是第一行例外!#后面的惊叹号会告诉shell用哪个shell来运行脚本。这里使用的是bash shell。

在指定了shell脚本之后,每一行可输入命令,同一行多个命令之间也用分号分开,行与行之间的命令直接回车键(不能分号结尾)。shell会根据命令在文件中出现的顺序进行处理。

注意:脚本文件不需要严格后缀,只要是文件即可。

运行脚本:当前目录下面 ./script 使用单点 操作符运行。

3.echo命令

echo this is a test    输出: this is a test
注解:默认情况下,不需要使用引号将需要显示的文本划定出来。

echo let's see if this'll work  输出:lets see if thisll work
注解:如果字符串中间出现引号,那么该引号会自动成对,并且里面的字符直接输出

echo "let's see if this'll" work  输出: let's see if this'll work
注解:如果引号本身也是输出的一部分,则可用单引号或者双引号来划定文本字符串(需要输保留的引号部分)。

echo "USER: $USER"   输出:USER: root
注解:如果$没有加转义符,默认是引用一个变量,如果变量并未定义则不显示。

echo “the cost of the item is $15”  输出:the cost of the item is 5
注解:默认认为$1为变量,尝试显示但是未定义。如果要显示美元符号,则应该加上转义符反斜杠\$15

说明: ${variable}形式引用变量,这对花括号通常用来帮助识别美元符号后的变量名。

4.用户变量

shell维护着一组环境变量,可用set命令来查看。除了环境变量,shell还允许在脚本中定义和使用自己的变量。用户变量的命名要求:可以由字母、数字和下划线组成,但是不能以数字开头。

(1)使用等号将值赋给用户变量,但是在变量、等号和值之间不能出现空格。否则会报错。即使值的名字和变量名一样,没有美元符号会被解释成普通文本。
test=10;b=test;c=$test;d=$b;echo $test,$b,$c,$d

其中变量b的值是普通文本test,变量c的值是变量test的值10,变量d的值是变量b的值test文本。

(2)变量的值如果有空格,需要使用双引号或者单引号包括。否则会报错。

(3)变量的值中可以使用\转义符。

(4)变量的值中,双引号括起来的内容“$”、“\”和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。

(5)变量值的叠加,可以使用两种方式:“$变量名”或${变量名}
第一个因为变量未定义($test456)所以值为空。第二个和第三个识别出来该变量的值。

(6)变量的路径,可以直接使用变量,也可以使用上面变量的叠加方式

 (7)命令不是变量名。如果要使用命令产生的结果作为值赋予变量,可以使用``一对反引号或者$()包含命令。

date是shell命令,但不是变量,所以不能引用变量的方式,否则该变量未定义输出为空。如果需要该命令的结果作为值,则需要采用反引号或包含的方式。如果需要叠加也是可以的。

 (8)变量查看和删除

查看使用set命令,删除使用unset 变量名 ​

(9)特殊的字符赋值
制表符和换行符是特殊字符,格式:var=$'\t'  和 var=$'\n',必须使用$且单引号
一般字符直接赋值, 如var=;   var=" "

5.输出重定向

(1)最基本的重定向是将命令的输出发送到一个文件中。

command > outputfile

 重定向操作符>(大于号)创建了一个jupy文件(通过默认的umask设置),并将date命令的输出重定向到该文件中。如果输出文件已经存在了,重定向操作符会用新的文件数据覆盖已有的数据。

(2)不想覆盖原有文件内容,而是想将命令的输出追加到已有的文件中,可以使用双大于号(>>)来追加数据。如果输出文件不存在则会创建。

command >> outputfile

6.输入重定向

(1)输入重定向将文件的内容会重定向到命令,而非将命令的输出重定向到文件。

command < inputfile

记忆方法:命令行上,命令总在左侧,而重定向符号"指向"数据流动的方向。

wc命令可以对数据中的文本进行技术,默认情况下会输出3个值:行数、词数、字节数。

(2)内联输入重定向(<<),这种方法不需要使用文件进行重定向,只需要在命令行中指定用于输入重定向的数据就可以。格式如下:

command << marker

data

marker

除了<<符号,必须指定一个文本标记来划分输入数据的开始和结尾。任何字符串都可以作为文本标记,但在数据的开始和结尾文本标记必须一致。

mark必须是一个整体,如果含有空格需要引号。会将marker之间的data输入重定向到wc命令中。

7.管道(piping)命令

管道被放在两个命令之间,将一个命令的输出重定向到另一个命令中。格式:

command1 | command2

如果使用重定向,则需要借助中间文件:command1 > temp-file;command2 < temp-file

注意:由管道串起来的两个命令并不是依次执行,实际上linux系统会同时运行这两个命令,在系统内部将它们连接起来。在第一个命令产生输出的同时,输出会立即送给第二个命令。数据传输不会使用任何的中间文件或缓冲区。

(1)可以在一条命令中使用任意多条管道。可以持续的将命令的输出通过管道传给其他命令来细化操作。command1 | command2 | command3 | command4 |...

这行命令会先执行rpm命令,将他的输出通过管道传给sort命令,然后将sort命令的输出传给more命令来显示。

也可以搭配使用重定向和管道来将输出保存到文件中。

8.数学运算($[operation])

在bash中,将一个数学运算结果赋值某个变量时,可以使用美元符和方括号( $[operation] )将数学表达式围起来。

   使用方括号来计算公式的时候, 方括号里面对空格没有约束,不必担心shell会误解乘号或其它符号,因为它在方括号内,shell就知道它不是通配符。同时表达式里面的变量可以不需要美元符$。可以看出来里面的大于号不需要转义,不会被认为是重定向符号。

注意:在bash shell脚本中,数学运算符只支持整数运算。直接砍去小数点后面的数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins shell构建脚本是一种在Jenkins中通过脚本来实现持续集成和自动化构建的方式。通过使用shell命令,可以实现代码检出、编译、测试、打包、部署等一系列构建工作的自动化执行。这种方式不仅能够提高构建效率,减少人为操作失误的可能性,还可以灵活地根据不同的环境和需要来配置执行流程。 ### 回答2: Jenkins是一款非常强大的开源自动化服务器,可以实现持续集成和持续交付,运用Jenkins可以方便地使用shell构建脚本。本文将从什么是shell构建脚本、如何创shell脚本shell脚本的一些常用命令等方面介绍Jenkins的shell构建脚本。 什么是shell构建脚本shell脚本是一种命令语言,它允许将一系列命令组合成一个脚本,一次性运行。在Jenkins中,我们可以利用shell脚本来实现许多自动化操作,如Java编译、Jar打包、部署等。 如何创shell脚本? 在Jenkins中创一个shell脚本非常简单。首先,打开你的项目的Jenkins页面,进入“构建后操作”,选择“执行shell脚本”选项。在弹出的窗口中,你可以编写你的shell脚本。 下面是一个简单的shell脚本示例: ``` #!/bin/bash //设置脚本解释器 echo "Hello World" //打印 “Hello World”到控制台 ``` 在这个示例中,我们以“#! /bin/bash”开头来指定我们要使用bash作为解释器。echo命令用于向控制台输出“Hello World”文本。 shell脚本的一些常用命令 以下是一些常用的shell脚本命令: - cd:切换目录 - cp:复制文件或目录 - mv:移动文件或目录 - mkdir:创目录 - rm:删除文件或目录 - wget:下载文件 - chmod:设置文件权限 - tar:压缩和解压文件 以上命令只是shell脚本中的一部分,还有其他强大的命令可以帮助你完成许多任务,例如sed、awk和grep等。 在Jenkins中使用shell构建脚本,可以让我们更快地识别问题并找出解决方案。通过编写一个shell脚本,我们可以尝试不同的方案,并快速找到最适合我们的方案。 ### 回答3: Jenkins是一个流行的开源持续集成工具,可以帮助团队构建,测试和部署他们的软件应用程序。Jenkins具有丰富的插件库,使得用户可以很容易地对其进行扩展和定制化。其中,Jenkins shell构建脚本是一种非常有用的构建方式之一。 Jenkins shell构建脚本是一种运行在Jenkins构建环境中的脚本,它可以执行各种任务,如编译代码,运行测试,构建和部署应用程序等。这些脚本通常使用shell或基于操作系统的命令来实现所有这些任务。Jenkins构建脚本可以使用多种编程语言编写,但是shell脚本是最常用的一种。在Jenkins任务配置中,我们可以指定一个或多个shell脚本,并且可以按照需要传递参数和环境变量。 Jenkins shell构建脚本一个重要优点是它的灵活性。用户可以使用各种shell命令和工具来完成任务。例如,编译代码可以使用编译器或构建工具,如Ant,Maven或Gradle。还可以使用各种测试框架和工具,如JUnit,TestNG和Selenium。在构建代码时,用户可以选择将最终的输出文件复制到指定的目录,或者将代码部署到Web服务器或应用程序服务器中。 在编写Jenkins shell构建脚本时,议遵循一些最佳实践。首先,脚本必须是可重复和可维护的。这意味着它应该根据需要使用函数和变量进行模块化编写。其次,脚本必须是幂等性的,即每次运行时都会产生相同的结果。最后,要确保脚本能够检测和处理错误,并在出现问题时快速停止构建。 总之,Jenkins shell构建脚本是一种功能强大且灵活性较高的构建方式。它可以帮助用户实现不同的构建任务,同时保持代码的可重复性和可维护性。最重要的是,使用Jenkins shell构建脚本可以使构建整个应用程序的流程更加自动化和高效,从而节省大量的时间和精力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值