文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用shell脚本语言

2023-06-09 13:46

关注

今天就跟大家聊聊有关如何使用shell脚本语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1、shell的概述

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

如何使用shell脚本语言

如何使用shell脚本语言

如何使用shell脚本语言

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

2、脚本的调用形式

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

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

如何使用shell脚本语言

3、shell语法初识

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

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

如何使用shell脚本语言

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

如何使用shell脚本语言

加上可执行权限

chmod +x xxxx.sh

如何使用shell脚本语言

运行

如何使用shell脚本语言

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

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

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

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

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

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

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

三种执行情况:(重要)

如何使用shell脚本语言

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

如何使用shell脚本语言

执行结果:

如何使用shell脚本语言

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

如何使用shell脚本语言

4、变量

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

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

从键盘获取值read

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

案例:

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

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

案例:读取多个值

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

案例只读变量:

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

查看环境变量:env

如何使用shell脚本语言

如何使用shell脚本语言

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

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

如何使用shell脚本语言

如何使用shell脚本语言

可以在终端中读取:

如何使用shell脚本语言

在其他sh脚本读取:

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

注意事项:

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

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

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

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

5、预设变量

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

如何使用shell脚本语言

案例:

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

脚本标量的特殊用法

如何使用shell脚本语言

如何使用shell脚本语言

如何使用shell脚本语言

加-e转义 才起换行作用

如何使用shell脚本语言

()由子shell 完成

如何使用shell脚本语言

{}由当前的shell执行

如何使用shell脚本语言

6、变量的扩展

1、判断变量是否存在

如何使用shell脚本语言

如何使用shell脚本语言

2、字符串的操作

如何使用shell脚本语言

7、条件测试

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

7.1、文件测试

如何使用shell脚本语言

如何使用shell脚本语言

7.2、字符串测试

如何使用shell脚本语言

如何使用shell脚本语言

如何使用shell脚本语言

7.3、数值测试

如何使用shell脚本语言

如何使用shell脚本语言

如何使用shell脚本语言

7.4、符合语句测试

如何使用shell脚本语言

如何使用shell脚本语言

8、控制语句

如何使用shell脚本语言

1、if控制语句

格式一:if [条件1]; then  执行第一段程序else  执行第二段程序fi格式二:if [条件1]; then  执行第一段程序elif [条件2];then执行第二段程序else  执行第三段程序fi

案例:

如何使用shell脚本语言

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

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

案例:

如何使用shell脚本语言

运行结果:

如何使用shell脚本语言

2、case

如何使用shell脚本语言

如何使用shell脚本语言

3、for循环语句

如何使用shell脚本语言

如何使用shell脚本语言

如何使用shell脚本语言

案例:

如何使用shell脚本语言

案例:扫描当前文件

如何使用shell脚本语言

4、while

如何使用shell脚本语言

如何使用shell脚本语言

5、until

如何使用shell脚本语言

如何使用shell脚本语言

6、break continue

如何使用shell脚本语言

9、函数

如何使用shell脚本语言

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

如何使用shell脚本语言

案例:求最值

如何使用shell脚本语言

案例:函数分文件

如何使用shell脚本语言

fun.sh

如何使用shell脚本语言

24_sh.sh

如何使用shell脚本语言

看完上述内容,你们对如何使用shell脚本语言有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯