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

1、shell的概述

shell 是一种脚本语言

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

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

shell命令解析器:

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

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

2f40255be23851ee666995f9dbdd7c5b.png

1a3bc512fd78a5f868e3b5d9f9b7065d.png

3e10f2a80b6cc50c30fc6b722b9c5ccb.png

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

2、脚本的调用形式

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

/etc/profile

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

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

~/.bashrc

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

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

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

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

2c2ff725d409fa831905c51e2c2a3bfc.png

3、shell语法初识

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

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

6e2d35aad45739d370e8052cb1ea7c05.png

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

c0b697b5df91b9937982c1dee3cdfd84.png

第二步:加上可执行权限

chmod +x xxxx.sh

c61859f3b42c56583d36dc9bb715ab62.png

第三步:运行

97ed46357b739a682a55071c174dfa30.png

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

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

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

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

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

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

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

三种执行情况:(重要)

9f595ee72b83643a58bb1f056811e6a6.png

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

bf3e1557978222768c72d0fa8eedd03f.png

执行结果:

ce8ea0d3528880fa99bb2d8141c89e53.png

将windows文件 转换成 unix文件

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

sudo apt-get install dos2unix

dos2unix shell脚本

转换成功就可以执行运行

方法二:

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

:set ff=unix

1a1561ed9c18508c299bc8e029051b3f.png

4、变量

定义变量

变量名=变量值

如:num=10

引用变量

$变量名

unset :清除变量值

e9562c3292bf42213cdc8538879d51dc.png

运行结果:

f4dc04323548950f69a276c4bd64f4fd.png

从键盘获取值read

a7b7896f37c7d1c933d206e761bd9989.png

运行结果:

c22333b872bfe8af7d022a46500f88cd.png

案例:

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

ca69c0374fba8bf038f8198fb3c897a7.png

运行结果:

da4c3caf9557e605a6294854a4776483.png

案例:读取多个值

35aab39ec03046ddb4f24961376e33c1.png

运行结果:

564472ff657cce585b888c9b71d353db.png

案例只读变量:

6ec6138c7ea3048a3e65163aaa33e634.png

运行结果:

96b0f0ed551dc9aac3fae965393725db.png

查看环境变量:env

3145653a1a46f07a2ed64aa418bf396f.png

fb08cf317b46993ed866c8307e5d9fa4.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 命令。

410e76a5b792a6bb63810c497e78ef55.png

3b8efa6cf6055400aa599cb7a58850d3.png

可以在终端中读取:

9eec062103fdd48c442beaa1369c5ff9.png

在其他sh脚本读取:

a72e2718300dd75bbf7df759c591fdc8.png

运行结果:

5ac1e1a4e8a470e0e463183d554d8e95.png

注意事项:

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

1_num=10 错误

num_1=20 正确

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

3、双引号 单引号的区别

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

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

8a06d80b0b9305c0054639da15e86523.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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本是一种编程语言,它被设计用于在操作系统的命令界面中执命令和任务。Shell脚本可以方便地自动化繁琐的任务,提高工作效率。 Shell脚本的语法非常简单,它使用类似英语的语句和命令来编写程序。它支持变量、条件语句、循环语句等基本编程结构。Shell脚本可以用于执系统命令、处理文件、操作数据等。 Shell脚本可以运在多种操作系统上,包括Windows、Linux、MAC等。它的优点是灵活、易学易用,不需要编译,可以直接运。另外,Shell脚本也支持调用其他编程语言的程序。 在使用Shell脚本之前,需要先编写一个脚本文件,通常以.sh为后缀。脚本文件可以在命令界面中执,也可以通过设置权限后直接执使用Shell脚本可以完成许多常见任务,比如批量修改文件名、自动备份文件、定时运任务等。它还可以结合其他工具和命令,实现更复杂的功能。例如,可以使用Shell脚本编写一个自动化测试脚本,通过执一系列命令和检查结果来验证软件功能。 为了更好地使用Shell脚本,需要掌握一些基本的命令和语法。常用的命令包括赋值命令、条件判断命令、循环命令、文件操作命令等。此外,还可以使用函数和参数来组织代码,提高脚本的可读性和重用性。 总之,Shell脚本是一种简单而强大的编程语言,它能够帮助我们自动化任务、提高工作效率。掌握Shell脚本的基本知识和技巧,对于系统管理员和开发人员来说是非常有用的。只要我们有一些编程经验和耐心,就可以快速学会并应用Shell脚本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值