专栏首页LNMP开发那些事shell脚本语法基础

shell脚本语法基础

shell即将各类命令预先放入一个文件中,方便一次性执行的一个程序文件,方便系统管理员来管理操作系统。目前大多数服务器使用linux操作系统,学习shell脚本,有助于简化日常的服务器管理工作。本篇主要是shell脚本的基本语法。

一、变量

1. shell变量的声明和使用

shell的变量声明与python类似,有以下特点:

  • 只能使用字母数字和下划线
  • 必须以字母或者下划线开头
  • 不能使用shell关键字(用help命令可以查看所有保留关键字)
  • 可以使用语句赋值 例如:name='ianzhi' age=12 _money=100 for file in `ls`

2. 常量

shell中没有类似于常规编程语言中的常量概念,但是可以使用readonly关键字将变量声明为只读类型,例如:

readonly name='ianzhi'

3. 销毁变量

当变量不再使用以后,为了性能,我们通常会销毁变量。在shell脚本中,可以使用unset来销毁变量,例如:

name='ianzhi'
unset name

二、数据类型

shell是弱类型语言,输入的时候无论是数字还是字符串,shell都是以字符串类型来存储的。

1. 字符串

在shell脚本中定义字符串变量可以使用单引号或者双引号,也可以不使用引号,不适用引号与使用双引号基本相同。 使用单引号性能会更好,但是将不会解析字符串中的变量。

2. 数组

bash中支持一维数组,定义数组用小括号包含以空格分隔的字符串即可。数组中的元素下标以0开始。例如:

friends=(zhangsan lisi wangwu)

三、语法

主要需要注意以下几点:

  • 变量赋值,=两侧不能有空格,会报错
  • 行尾不需要添加;
  • 一般在文件首行定义使用的解释器
  • 使用echo来输出内容

1. 注释

#号开头的行就是注释,多行注释可以使用#号,或者也可以使用大括号括起来。

2. 流程控制

2.1 if

if condition;then
    command
fi

2.2 if,else

if condition;then
    command
else
    command
fi

2.3 if,elseif

if condition;then
    command
elif condition;then
    command
else
    command
fi

通过这篇文章,相信大家对于shell脚本的语法有了一个大概的了解,以后的文章,我会将主要内容放在介绍shell脚本在日常服务器管理中的应用方面,欢迎关注~

文章作者ianzhi,原文地址:https://www.dnote.cn/users/ianzhi/posts/shelljiaobenyufajichu

文章版权归作者所有,转载请保留此声明。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ckeditor5-基础使用

    其实ckeditor是一个老项目了,但是相对于其他的编辑器,它是一直在保持更新的,目前最新的版本就是ckeditor 5,这里以经典编辑器样式(Classic ...

    ianzhi
  • vue组件 - 框架 - 集成 - 构建文档 - ckeditor5中文文档

    为Vue.js安装CKEditor 5 WYSIWYG编辑器组件以及您选择的构建。

    ianzhi
  • 获取和保存数据 - 集成 - 构建文档 - ckeditor5中文文档

    CKEditor 5允许您以各种方式从中检索数据并将其保存到服务器(或通常用于您的系统)。 在本指南中,您可以了解可用选项及其优缺点。

    ianzhi
  • 《笨办法学Python》 第0课手记

    本博客是学习Python的记录手册,本人计算机在读,有C语言的基础,运行环境为 windows 10家庭中文版(64位),使用Windows PowerShel...

    Steve Wang
  • Shell入门介绍篇

    配置管理:git或svn的提交和协作策略 编译、打包:定制或裁剪软件模块 发布:源码发布,库发布,软件发布 实用工具:log分析,代码自动生成 质量监督...

    Eric杂货铺
  • ​meterpreter shell | 加固shell

    metasploit 中的 meterpreter shell 是一个我们比较喜欢的shell,因为方便我们后续加载各种模块,简直不要太方便

    意大利的猫
  • 最近的几个技术问题总结和答疑(四) (r8笔记第94天)

    今天行程还是比较匆忙,刚回到家,打开微信就收到了几个问题,有不少是和迁移相关的,我选出几个,还有几个需要好好考虑一下。 问题1: 我们的多个业务系统都是Orac...

    jeanron100
  • Linux下修改环境变量

    首先来看修改环境变量的位置,我们可以在那些地方修改环境变量? 1. /etc/profile:对所有用户生效;此文件为系统的每个用户设置环境信息,当用户第一...

    卡尔曼和玻尔兹曼谁曼
  • Linux下的shell简介(三) 原

            shell的本意是“壳”的意思,其实已经很形象地说明了shell在Linux系统中的作用。shell就是围绕在Linux内核之外的一个“壳”程序...

    wuweixiang
  • shell脚本小技巧—001

    在子shell中执行命令时,不会对当前的shell有任何影响,所有在子shell中执行的命令仅限于子shell内,例如:

    dogfei

扫码关注云+社区

领取腾讯云代金券