linux脚本语言延时,shell脚本语言的使用(超全超详细)

1、shell的概述

shell 是一种脚本语言

脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)

shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)

shell命令解析器:

系统提供 shell命令解析器: sh ash bash

查看自己linux系统的默认解析:echo $SHELL

056fbecc0fabb60fb43b01717d938f3f.png

86de2cf7d8579ff7b4429ad602feca02.png

22a5bc09d00d30dd0b06298be376d0ec.png

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

2、脚本的调用形式

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

/etc/profile

此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,系统的公共环境变量在这里设置

开始自启动的程序,一般也在这里设置

~/.bashrc

用户自己的家目录中的.bashrc

登录时会自动调用,打开任意终端时也会自动调用

这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等

用户手动调用:用户实现的脚本

cbda6fc68866d41700003498218b05ad.png

3、shell语法初识

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

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

c389a4f221b5c323dfb7a6686a20d3be.png

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

5debb93eec44061636d24c8293d7a109.png

第二步:加上可执行权限

chmod +x xxxx.sh

3e903bc90f0048a83557b09664d80484.png

第三步:运行

5725c449c23ffdf0b30546cc83097a34.png

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

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

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

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

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

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

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

三种执行情况:(重要)

078601b5ed0cc79465060f2d5607bb48.png

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

503e842967d78d876314064eee66ce16.png

执行结果:

c5c8809be9195221bf50b3eb185cf5b1.png

将windows文件 转换成 unix文件

方法一:dos2unix 如果没有该插件 需要安装

sudo apt-get install dos2unix

dos2unix shell脚本

转换成功就可以执行运行

方法二:

需要用vi打开脚本,在最后一行模式下执行

:set ff=unix

e0ab14441b81c42674e9b33a28e877f8.png

4、变量

定义变量

变量名=变量值

如:num=10

引用变量

$变量名

unset :清除变量值

3a115922e83f0d1373986bbdda718ef6.png

运行结果:

468cba2e44152e79ff3fa7a705081edc.png

从键盘获取值read

20a7be8d69635a0ad4e7d1a4a87a3f77.png

运行结果:

6d97d59d92ee557807906ddad3d08c04.png

案例:

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

73262a41aa698ee47e23e3a3cc3289e9.png

运行结果:

74ccfb5824cca2c9850caaf43919ac18.png

案例:读取多个值

56cde94f7cff032287b112caffb7ba80.png

运行结果:

2cf2d8c2b19883645c76ddf2a217cdbc.png

案例只读变量:

56ca013fc886a8f3ba7ad8365e8b425b.png

运行结果:

4b55937ebcc2fbb6e21cdd900d88586b.png

查看环境变量:env

432b6de6e2a79a2decb1a9567f9c75c1.png

e55888c28e376887909140ff5a6fb13b.png

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

source 脚本文件

source命令用法:

source FileName

作用:在当前bash环境下读取并执行FileName中的命令。

注:该命令通常用命令“.”来替代。

如:source .bash_rc 与 . .bash_rc 是等效的。

注意:source命令与shell scripts的区别是,

source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

ce91e310cdc952d412fcda194e7e63bc.png

e25dcafe26b0015097912e934e602d4f.png

可以在终端中读取:

888fb60b2421c60bc0f05eb1fdb327cd.png

在其他sh脚本读取:

598c07401f5303b3821c405c514adc5a.png

运行结果:

e8ee819de58af000e4d7db776ba4b64b.png

注意事项:

1、变量名只能包含英文字母下划线,不能以数字开头

1_num=10 错误

num_1=20 正确

2、等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来

3、双引号 单引号的区别

双引号:可以解析变量的值

单引号:不能解析变量的值

07ce4ac5b9269e31f9c29c5e08a1dc7f.png

运行结果:

f4373aed8e894b38400299e30ae720aa.png

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

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

5、预设变量

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

3db5dbd93cafc61f2bfedaa41755d8d1.png

案例:

1e7a0450b27f1c2242edd8767a734f8a.png

运行结果:

72653e629ad8602836c81fa52a329f96.png

脚本标量的特殊用法

fd51d97e59756119ddfbba617b13dd67.png

db18da04090289f350908717f9752d17.png

6e1ddd7729774d4358de24859c201672.png

加-e转义 才起换行作用

7986748a12e204bf676231d27c6fa6a3.png

()由子shell 完成

9d15dd2700858ef11cacafddd6d3b033.png

{}由当前的shell执行

b3cff5ff5d01ae6cdc80413006595ccb.png

6、变量的扩展

6.1、判断变量是否存在

f3fb371d9877f7206944d0f9e4d70abe.png

721010eab06865debe9f7c70a465fca9.png

6.2、字符串的操作

34d107617fd14904f83c21951de1fefa.png

7、条件测试

test命令:用于测试字符串、文件状态和数字

test命令有两种格式:

test condition 或[ condition ]

使用方括号时,要注意在条件两边加上空格。

7.1、文件测试

4d4bdf22cb5135995019d024e79cc180.png

4cae938eca164e8b02748f5c0885dee7.png

7.2、字符串测试

79e1fedf8f97997289219f8d63025228.png

d798a9a75bbe76f36bd8e78c23c1bed3.png

edb993f8a8b0a176141653b61e74bbc3.png

7.3、数值测试

e623d1b4407eb904246050d7b95e20ea.png

6b8a5c4433dd48a1557203ce2a0848b4.png

ffb68513244183c3e093d5f6a6c6a02a.png

7.4、符合语句测试

d17419a1fb31557f997fbc044060bd05.png

37331fa7100647b5dedff741345ab536.png

8、控制语句

d48385e3f1b5397c2fe1e4554e4952cb.png

8.1、if控制语句

格式一:

if [条件1]; then

执行第一段程序

else

执行第二段程序

fi

格式二:

if [条件1]; then

执行第一段程序

elif [条件2];then

执行第二段程序

else

执行第三段程序

fi

案例:

f761df295aee64063f545e100ca95886.png

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

338b9536dbf9c929b2bf59fac00afcbc.png

运行结果:

972ca5af8346277db74b32671b3b4620.png

案例:

f42c18995dd911e2d58026c62ae0f370.png

运行结果:

804adeed97f5c64a7680a250093345ae.png

8.2、case

339b6a6af248c22c06005b9673018fb4.png

73519efb83888823bb2f0f906e1eb082.png

8.3、for循环语句

af0d0d2106f089b4bde389568b5a730d.png

b1c4d3cff4df0e3c713707a0f3700e46.png

0e254e1c09a5c7ede4c566f8c4a75ca4.png

案例:

8c80c4d0a22b0a8658400ace149696d2.png

案例:扫描当前文件

6655c0f69aad942060625e0e517626c6.png

8.4、while

7c6a7f9807082781b2cd4216cc269b32.png

57f219dfa2126dff7709384ef4951537.png

8.5、until

e36564a25069d81d8c0dd4d94196edfc.png

69c70b55d90459462fbec6b4c06b2fd7.png

8.6、break continue

c73d76b8b618653fab357ab009addbad.png

9、函数

60dedebe98becab838463d27c324985e.png

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

0d4e5a07a19cc8961db84afc4c45e745.png

案例:求最值

732bbd71e00e6bfc99dc13fcf06cf564.png

案例:函数分文件

90728427d71dd82027113200fa4927bf.png

fun.sh

50005255c19d859b8c7b28662c1d7943.png

24_sh.sh

838d8eacf396470038906eaf7e7f1d4d.png

到此这篇关于shell脚本语言的使用(超全超详细)的文章就介绍到这了,更多相关shell脚本语言内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值