第三天shell脚本(上)

本文将深入讲解如何创建.sh脚本,包括头部注释的编写规范,以及变量的定义、初始化和使用技巧。涉及运行方式、参数传递、运算符和字符串操作等内容,帮助你掌握Linux shell编程的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell操作linux的桥梁

创建:

后缀为.sh的文件

编写:

头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上)

运行:

1.通过sh命令执行

例如:sh helloworld.sh

2.通过bash命令执行

例如:bash helloworld.sh

3.通过把文件修改为可执行的文件然后通过./文件命令.sh来执行

例如:./helloworld.sh(必须在当前目录下)

变量(动态数据类型,没有数据类型的限制,并且必须初始化)

定义和初始化

格式

变量名称=值

例如:

x=10 "abc edefg"

注意:

等号两边不能有空格

使用:通过$区分变量还是一句话

格式1:

$变量

格式2:

${变量}

注意:

shell中没有声明只有初始化

shell中空格做分隔符使用

没有变量不会报错会找一个空格输出

格式1,会把$后所有相连内容看做一个变量

格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分

$0...$n:表示接收外部参数(执行脚本时,传递的参数) 特殊的变量(位置变量)

格式:

$下标

注意:

要是想要识别个位数以上需要使用{}

$0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)

下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标

$*获取所有参数

$#获取所有参数个数

引号:包含的内容一定是字符串

单引号:按原字符串输出

双引号:可以引用变量,拥有特殊含义的内容

双引号里面的双引号可以加\来匹配变成字符串并且输出

拼接:连续获取变量

注意:

如果有多个引号,连续的形成一对

引号中使用其他引号,其他引号做字符串使用

字符串

获取长度

格式:

${#变量}

截取:

格式:

${变量:开始位置:长度}

注意:

${str::5}:从0获取5个

${str:0}:从0获取到末尾这里两个冒号要去掉一个

替换单个

格式:

${变量/旧/新}

注意:从左向右替换第一个

替换所有

格式:

${变量//旧/新}

注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值

删除

从头开始删除

${变量#表达式}:匹配第一个删除

${变量##表达式}:匹配最后一个删除

从尾开始删除

${变量%表达式}:匹配第一个删除

${变量%%表达式}:匹配最后一个删除

注意:从未开始删除,表达式还是从左向右去写

删除不会再原字符上进行修改,想要修改原字符串只能从新赋值

运算符

算术运算符

bash不支持简单的数学运算,可以通过命令实现expr

格式1:

`expr 值 + 值`

注意:符号两边需要加上空格

格式2:

$[值+值]

比较运算符: > < >=

格式:

$[值符号值](符号两边空格加不加无所谓)

注意:比较的结果用1(true)和0(false)表示

逻辑运算符: &/and |/or !/not

例如:

#判断2>1结果

echo $[2 > 1]

#反转2>1结果

echo $[!$[2>1]]

# 反转后面的结果2>1 and 2>3 false0

echo $[!$[$[2>1]&$[2>3]]]

echo $[2>1 & 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值