目录

1、shell的概述

2、脚本的调用形式

3、shell语法初识

4、变量

5、预设变量

6、变量的扩展

7、条件测试

8、控制语句

9、函数


1、shell的概述

shell 是一种脚本语言
脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)
shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)
shell命令解析器:
系统提供 shell命令解析器: sh ash bash
查看自己linux系统的默认解析:echo $SHELL

shell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行

2、脚本的调用形式

打开终端时系统自动调用:/etc/profile 或 ~/.bashrc

/etc/profile
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,系统的公共环境变量在这里设置
开始自启动的程序,一般也在这里设置
~/.bashrc
用户自己的家目录中的.bashrc
登录时会自动调用,打开任意终端时也会自动调用
这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等
用户手动调用:用户实现的脚本

3、shell语法初识

3.1、定义以开头:#!/bin/bash

#!用来声明脚本由什么shell解释,否则使用默认shell

3.2、单个"#"号代表注释当前行第一步:编写脚本文件

第二步:加上可执行权限

1

chmod +x xxxx.sh

第三步:运行

三种执行方式 (./xxx.sh bash xxx.sh . xxx.sh)

三种执行方式的不同点(./xxx.sh bash xxx.sh . xxx.sh)

./xxx.sh :先按照 文件中#!指定的解析器解析

如果#!指定指定的解析器不存在 才会使用系统默认的解析器

bash xxx.sh:指明先用bash解析器解析

如果bash不存在 才会使用默认解析器

. xxx.sh 直接使用默认解析器解析

三种执行情况:(重要)

注意:windows下 写脚本 在linux下执行 注意

执行结果:

将windows文件 转换成 unix文件
方法一:dos2unix 如果没有该插件 需要安装
sudo apt-get install dos2unix
dos2unix shell脚本
转换成功就可以执行运行
方法二:
需要用vi打开脚本,在最后一行模式下执行
:set ff=unix

4、变量

定义变量
变量名=变量值
如:num=10
引用变量
$变量名
unset :清除变量值

运行结果:

从键盘获取值read

运行结果:

案例:

在一行上显示和添加提示 需要加上-p

运行结果:

案例:读取多个值

运行结果:

案例只读变量:

运行结果:

查看环境变量:env

导出环境变量(其他shell识别该变量)

source 脚本文件
source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
注意:source命令与shell scripts的区别是,
source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

可以在终端中读取:

在其他sh脚本读取:

运行结果:

注意事项:

1、变量名只能包含英文字母下划线,不能以数字开头
1_num=10 错误
num_1=20 正确
2、等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来
3、双引号 单引号的区别
双引号:可以解析变量的值
单引号:不能解析变量的值

运行结果:

如果想在PATH变量中 追加一个路径写法如下:(重要!!!!)

1

export PATH=$PATH:/需要添加的路径

5、预设变量

shell直接提供无需定义的变量

案例:

运行结果:

脚本标量的特殊用法

加-e转义 才起换行作用

()由子shell 完成

{}由当前的shell执行

6、变量的扩展

6.1、判断变量是否存在

6.2、字符串的操作

7、条件测试

test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ](结果:1:否;0:是)
使用方括号时,要注意在条件两边加上空格。

7.1、文件测试

7.2、字符串测试

7.3、数值测试

7.4、符合语句测试

8、控制语句

8.1、if控制语句

1

2

3

4

5

6

7

8

9

10

11

12

13

14

格式一:

if [条件1]; then

  执行第一段程序

else

  执行第二段程序

fi

格式二:

if [条件1]; then

  执行第一段程序

elif [条件2];then

执行第二段程序

else

  执行第三段程序

fi

案例:

案例:判断当前路径下有没有文件夹 有就进入创建文件 没有 就创建文件夹 再进入创建文件

运行结果:

案例:

运行结果:

8.2、case

8.3、for循环语句

案例:

案例:扫描当前文件

8.4、while

8.5、until

8.6、break continue

9、函数

所有函数在使用前必须定义,必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用

案例:求最值

案例:函数分文件

fun.sh

24_sh.sh

到此这篇关于shell脚本语言的使用(超全超详细)的文章就介绍到这了。如果喜欢麻烦点个关注!

shell脚本的使用入门(超全)相关推荐

  1. linux命令行开头是sh,shell脚本语言的使用(超全超详细)

    1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...

  2. linux中写脚本一般用语言,shell脚本语言的使用(超全超详细)

    1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...

  3. 超详细shell脚本编程快速入门

    文章目录 1.shell简介 1.1 什么是shell 1.2 shell脚本 1.3 运行shell脚本 1.4 shell注释 1.5 shell编写的基本步骤 2.shell变量 2.1 命名变 ...

  4. ubuntu及shell脚本常用命令入门

    一.Shell命令 二.ubuntu软件安装方法 三.Ubuntu文件系统结构 四.ubuntu磁盘文件 五.Linux下常用的压缩格式 六.linux用户和用户组 七.Ubuntu/Linux文件权 ...

  5. linux 函数自动补全,Shell脚本中实现自动补全功能

    对于Linuxer来说,自动补全是再熟悉不过的一个功能了.当你在命令行敲下部分的命令时,肯定会本能地按下Tab键补全完整的命令,当然除了命令补全之外,还有文件名补全. Bash-completion ...

  6. shell脚本基础知识(入门)

    简介 本文会全面介绍shell脚本的基础知识. 脚本格式 要把shell命令放到一个"脚本"当中,有一个要求:脚本的第一行必须写成类似这样的格式: #!/bin/bash bash ...

  7. 一文搞定Linux shell脚本编程( 史上最全汇总 )

    目录 Shell是一种脚本语言 第一个Shell脚本 Shell编程语法 Shell变量 字符串 Shell数组 位置参数 内建命令 echo read printf exit test 流程控制 i ...

  8. shell脚本之基础入门

    Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

  9. Shell脚本编程学习入门

    Shell起源于Unix,是Unix和Linux通信的东西 用户和内核之间的"代理",叫做Shell. SHell除了能解释用户输入的命令,把它传递给内核,还可以: 1.调用其他程 ...

最新文章

  1. iptables踩坑记
  2. “照骗”大行其道,没有人是“无辜的雪花”
  3. C#,一种简单的方式实现滚动鼠标缩放图片,平移
  4. cad截图软件_AutoCAD电气制图协会线上CAD学习打卡活动结束
  5. 程序开发中常用的密码学家的算法推荐清单
  6. 史上最全的人工智能知识图谱
  7. 2021-06-14 七大参数,四种拒绝策略
  8. 【Gulimall+】免费白嫖内网穿透:小米球ngrok
  9. 某超级注入程序的驱动逆向
  10. Python自制成语接龙小游戏
  11. 软件测试中的80/20原则
  12. 零代码工具推荐 八爪鱼采集器
  13. amazon alexa simple demo code for libcurl
  14. 天然产物来源的新型除草剂研究取得进展
  15. 如何把安卓机用出Ipad的自由感 | 安卓党电子手帐
  16. zdm各命令的功能和作用_ZDM命令 注释
  17. 免费录屏软件有哪些?录屏软件下载,认准这3款软件
  18. 【对可转债和期权的初步认识】
  19. js 根据秒数获取多少小时,多少分钟,多少秒
  20. 全球及中国智能交通管理系统行业运营规划及应用前景调研报告2022-2027年

热门文章

  1. 华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!
  2. NVIDIA Tesla/Quadro和GeForce GPU比较
  3. email正则表达式 验证邮箱格式
  4. mac selenium 连接已经打开的chrome浏览器
  5. GeckoFx v45浏览器控件实现文件下载出现异常的解决办法
  6. JAVA中OOA、OOD、OOP概念
  7. hive四种连接方式
  8. 上课笔记-营销管理(一)
  9. AD设置某个焊盘铺铜连接方式
  10. 【mongoDB】mongoDB的正确的连接方式