Linux 系统shell脚本编程笔记——脚本入门

这篇具有很好参考价值的文章主要介绍了Linux 系统shell脚本编程笔记——脚本入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、创建shell脚本文件

 2、显示消息

3、 环境变量

4、用户变量

5、命令替换

​编辑

 6、重定向输入与输出

6.1、输出重定向

 6.2、输入重定向

​编辑

7、执行数学运算

7.1、expr命令

7.2、bc的基本用法

 8、退出脚本


完整笔记请前往此处获取:https://download.csdn.net/download/qq_55908180/88366003

Shell的核心是命令行提示符

1、创建shell脚本文件

要将shell命令放到文本文件中,首先需要用文本编译器来创建一个文件,然后把命令输入到文件中。在创建shell脚本文件时,必须在文件的第一行指定要使用的shell。格式是:  #!/bin/bash 一般在shell脚本中,井号(#)用作注释。Shell不会处理脚本中的注释行,但是,脚本文件中第一行除外,#后面的感叹号会告诉shell用哪个shell运行脚本。例如:

  1 #!/bin/bash
  2 
  3 date
  4 who

 在编译之前需要改一下test1的权限,因为在创建新文件时只有文件的属主与属组才有读写权限,所以需要用:chmod u+x test1 之后再编译就可以正常编译。

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 2、显示消息

可以通过echo命令实现输出的效果。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

在默认情况下,不需要使用引号将要显示的文本字符串划出来,但有时字符串中出现引号的话就会比较麻烦。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

此时就需要用单引号或者双引号来划定文本字符串,如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 也可以把echo语句添加到shell脚本中任何需要显示额外信息的地方。如:

  1 #!/bin/bash
  2 
  3 echo The time and date are:
  4 date
  5 echo "Let's see who's logged into the system:'"
  6 who

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

3、 环境变量

 在shell脚本中,可以在环境变量名之前加上美元符($)来使用这些环境变量。如:

  1 #!/bin/bash
  2 
  3 echo "User info for useid: $USER"
  4 echo UID: $UID
  5 echo HOME: $HOME

结果显示:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 注意:echo命令中环境变量会在脚本运行时替换为当前值,脚本在引号中出现美元符时,脚本会以为你在引用一个变量,这样输出的可能不是我们的期望值,所以想要输出我们期望值,可以在美元符前放一个反斜线\。因为反斜线允许shell脚本将美元符解读为实际的美元符,而不是变量。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

4、用户变量

除了环境变量,shell脚本也允许在脚本中定义和使用自定义的变量,用户变量可以是任何由字母、数字和下划线组成的字符串,但是长度不超过20个,值得注意的是,用户变量是区分大小写的。使用等号将值赋值给用户变量,注意在变量、等号和值之间不能出现空格

注意:

1、变量名不能以数字开头,但可以包含数字。

2、尽量避免使用shell关键字作为变量名,以免引起混淆

3、常量的变量名通常使用大写字母,例如 PI=3.14

如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

只读变量

可以使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

如下所示:

 shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 删除变量

可以使用使用 unset 命令可以删除变量。

使用格式:unset variable_name

注意:变量被删除后不能再次使用。unset 命令不能删除只读变量。

在shell中,变量一般视作字符串,可以使用单引号或双引号来定义字符串。

单引号字符串的限制:

1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

2、单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

双引号的优点:

1、双引号里可以有变量

2、双引号里可以出现转义字符

5、命令替换

shell脚本中最有用的特征之一就是可以从命令输出中提取信息,并把它赋值给变量。有两种方法可以把命令输出赋值给变量:

  1. 反引号字符(`
  2. $()格式

如下:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 6、重定向输入与输出

有时候你想保存某个命令的输出而不仅是让它只显示在显示器上,shell提供了几个操作符,可以把命令的输出重定向到另外一个位置。重定向可以用于输入,也可以用于输出

6.1、输出重定向

最基本的重定向把命令输出送到一个文件中。Shell用大于号(>)来实现这一功能。把之前显示器上出现的命令输出保存到指定的输出文件中,如:

 shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 如果你想让命令的输出追加到已有文件中,而不是覆盖文件原有内容,可以用远大于号(>>)来追加数据,如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 6.2、输入重定向

输入重定向的输出重定向时正好相反的。输入重定向是把文件的内容重定向到命令,而不是把命令的输出重定向到文件中。

输入重定向符号是小于号(<):记忆方法:在命令行中,命令在左侧,重定向符可以理解为指向数据流动的方向,小于号说明是数据是在从输入文件流向命令。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

Wc命令可以对文本中的数据进行计数,在默认情况下会输出三个值,依次为:文本的行数;文本的词数;文本的字节数。

还有一种输入重定向的方法,叫做内联输入重定向。这种方法不需要使用文件进行重定向,只需要在命令行中指定用于输入重定向的数据就可以了。内联输入重定向的符号是远小于号(<<)。除了这个符号,还要指定一个文本标记用来划分输入数据的开始和结束。注意:任何字符串都可以作为文本标记,但是在数据的开始和结尾文本标记必须一致。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

7、执行数学运算

对于shell脚本来说,有两种途径可以用来进行数学运算。

7.1、expr命令

Expr命令允许命令在命令行上处理数学表达式,但是很笨拙。

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

操作符

描述

ARG1  |  ARG2

如果ARG1既不是null也不是0,返回ARG1,否则返回ARG2

ARG1  &  ARG2

如果没有参数是null或者为0,返回ARG1,否则返回0

ARG1  <  ARG2

如果ARG1小于ARG2,返回1,否则为0

ARG1  <=  ARG2

如果ARG1小于或等于ARG2,返回1,否则为0

ARG1  =  ARG2

如果ARG1等于ARG2,返回1,否则为0

ARG1 !=  ARG2

如果ARG1不等于ARG2,返回1,否则为0

ARG1  >=  ARG2

如果ARG1大于或等于ARG2,返回1,否则为0

ARG1  >  ARG2

如果ARG1大于ARG2,返回1,否则为0

ARG1  +  ARG2

返回ARG1和ARG2的算数运算和

ARG1  -  ARG2

返回ARG1和ARG2的算数运算差

ARG1  *  ARG2

返回ARG1和ARG2的算数乘积

ARG1  /  ARG2

返回ARG1和ARG2的算数商

ARG1  %  ARG2

返回ARG1和ARG2的算数余数

使用方括号

在把一个数学运算结果赋值给某个变量时,可以用美元符和方括号把数学表达式包围起来。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 这种技术也适用于脚本。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 值得注意的是:bash shell 数学运算符只支持整数运算,这是一个对进行任何实际的数学运算的巨大的限制。

浮点解决方案

有几种方法能够克服数学运算的整数限制。最常见的方法是使用内建的bash计算器bc。

7.2、bc的基本用法

Bash计算器能够识别到:

数字(整数和浮点数)

变量(简单变量和数组)

注释(以#或者C语言中的/* */开始的行)

表达式

编程语言(比如if-then语句)

函数

可以在shell提示符下通过bc命令访问bash计算器。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 浮点运算是借助内建变量scale控制的,必须把这个值设置为你希望保留的小数位数,scale默认为0。 -q命令行选项可以不显示bash的欢迎信息。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 除了普通数字,bash计算器还支持变量。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 在脚本中使用bc

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 可以不使用数字表达式值,也可以用shell脚本定义好的变量。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 一旦变量被赋值,也可以用于其他的运算。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 但是这种方法只适用于较短的运算,如果涉及较多的数字,需要进行大量的运算,可以使用内联输入重定向来解决这个问题。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 8、退出脚本

在默认情况下,shell脚本会以脚本的最后一个命令的退出状态码退出。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash

 也可以在退出时设置返回自己的退出码,使用exit命令。注意:退出状态为0~255的整数值,也可以用脚本中的变量作为退出码。如:

shell 创建文件,shell脚本编程,linux,笔记,ubuntu,bash文章来源地址https://www.toymoban.com/news/detail-736934.html

Linux退出状态码
状态码 描述
0 命令成功结束
1 一般性未知错误
2 不适合的shell命令
126 命令不可执行
127 没找到命令
128 无效的退出参数
128+x 与Linux信号x相关的严重错误
130 通过Ctrl+C终止的命令
255 正常范围之外的退出状态码

到了这里,关于Linux 系统shell脚本编程笔记——脚本入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shell脚本编程入门--Day2

    echo -n 不换行输出 -e 解析字符串中的特殊符号 (n, r, t, b), printf是直接识别特殊符号的 eval 执行多个命令 没什么太大作用 exec 不创建子进程执行后面的命令, 并且exit export 设置环境变量 time 可以计算命令执行时间 ${变量} 返回变量的值 ${#变量} 返回变量的长度 ${变量 :

    2024年02月06日
    浏览(40)
  • Linux——Shell脚本编程(1)

    1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 2)对于 JavaEE 和 Python 程序员来说,工作的需要,要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。 3) 对于大数据程序员来说,需要编写Shell程序来管

    2024年02月09日
    浏览(60)
  • Linux_5_Shell脚本编程

    程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构: 数据在计算机中的类型和组织方式 面向过程语言 做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理 问题规模小,可以步骤化,按部

    2024年02月13日
    浏览(47)
  • Linux实验4 shell脚本编程基础

    1.假设在/tmp下有以当前用户的帐号命名的目录,请在命令行中临时修改环境变量PATH的值,要求该目录的路径附加到该变量的最后。 2.请在命令行中临时设置命令输入提示行格式为:“当前系统时间-用户#”。 3.在命令行定义一个字符串变量str,并且赋值为“test for shell”,然

    2024年04月17日
    浏览(52)
  • Shell编程——弱数据类型的脚本语言快速入门指南

    目录 Linux Shell 数据类型 变量类型 运算符 算术运算符 赋值运算符 拼接运算符 比较运算符 关系运算符 控制结构 顺序结构 条件分支结构 if 条件语句 case 分支语句  循环结构 for 循环 while 循环 until 循环 break 语句 continue语句 函数 函数定义  函数名 函数体 返回值 参数 函数的

    2024年02月12日
    浏览(78)
  • 【Linux命令行与Shell脚本编程】第十六章 Shell函数

    脚本函数基础 函数返回值 在函数中使用变量 数组变量和函数 函数递归 创建库 在命令行中使用函数 可以将shell脚本代码放入函数中封装起来,这样就能在脚本的任意位置多次使用. 函数是一个脚本代码块,可以并在脚本中的任何位置重用它。当需要在脚本中使用该代码块时

    2024年02月14日
    浏览(54)
  • 3.7 Linux shell脚本编程(分支语句、循环语句)

    目录 分支语句(对标C语言中的if) 多路分支语句(对标C语言中的swich case) 分支语句(对标C语言中的if) 语法结构:          if    表达式                  then  命令表          fi     如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行fi后面的语句。

    2024年02月02日
    浏览(46)
  • Linux shell编程学习笔记44:编写一个脚本,将md5sum命令执行结果保存到变量中,进而比较两个文件内容是否相同

    在  Linux shell编程学习笔记42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我们提到编写一个在Linux系统下比较两个文件内容是否相同的脚本。 基本思路是: 其中有两个难点: 1.文件的md5值的获取 2.md5值的比较 对于第1个难点,我们的解决办法是

    2024年04月10日
    浏览(75)
  • 【Linux命令行与Shell脚本编程】第十四章,呈现数据

    第十四章 呈现数据 1.1,标准文件描述符 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误 1.1.1,STDIN 标准输入 1.1.2,STDOUT 标准输出 1.1.3,STDERR 错误输出 1.2,重定向错误 1.2.1.只重定向错误 n 1.2.2.重定向错误消息和正常输出 2.1,临时重定向 2.2,永久重定向 exec 4

    2023年04月25日
    浏览(43)
  • 【shell编程入门】stable diffusion webui的webui.sh脚本解析

    通过webui.sh,我们可以在linux系统下安装虚拟环境,并启动stable diffuson webui。 BASH_SOURCE[0] : 这是一个包含当前 Bash 脚本文件名的数组。 ${BASH_SOURCE[0]} 表示当前脚本的文件名。 dirname -- \\\"${BASH_SOURCE[0]}\\\" : dirname 命令用于获取文件路径的目录部分。这里它获取了 ${BASH_SOURCE[0]} 即当前

    2024年01月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包