当前位置:网站首页>shell脚本学习day01
shell脚本学习day01
2022-07-27 07:43:00 【yygyj】
1、第一个Shell程序
1.1 创建Shell文件
命令:touch hello.sh
1.2 编写Shell程序
定义文件声明
#!/bin/bash
echo "Hello word"
#!:表示约定标记,他会告诉系统这个脚本需要什么样子的解释器来执行,即是一种脚本体现
echo:表示命令用于输出文本信息
1.3 修改文件权限
查看每一部分权限 命令 ls -l hello.sh
修改文件权限 chmod +x ./hello.sh
1.4 执行Shell脚本文件
命令: ./hello.sh
2、Shell脚本语法 注释
“#” 表示注释
注意:在Shell脚本中,没有多行注释,只有单行注释
3、Shell脚本语言-变量
3.1 变量定义-注意事项
注意二:变量名和等号不能够有空格(和我们的一般语言不一样)
注意三:变量名首字母必须是字母或者下划线
注意四:变量名中间不允许有空格
注意五:不允许使用标点符号
3.2 只读变量
关键字 :readonly(只读,不能够修改)
3.3 删除变量
语法:unset
案例:unset 变量名
3.4 变量类型
3.4.1 类型一:本地变量
作用域整个bash进程可以使用
语法:name="smile2018"
3.4.2 类型二:局部变量
作用域:当前代码段(修饰符:local)
3.4.3 类型三:环境变量
作用域:当前shell进程以及子进程
语法:export name=“hello”
3.4.4类型四位置变量
name=${
0}
age=${
1}
sex=${
2}
echo "姓名:${name} 年龄:${age} 性别:${sex}"
执行脚本:
./hello.sh tom 23 男
执行结果: 姓名:./hello.sh 年龄:tom 性别:23
${
0}表示脚本文件名称 参数从1开始
3.4.5 特殊变量
${
0}-特殊变量-文件名称
${
?} 表示返回上一个命令执行状态返回值
0:表示执行成功
1:程序执行结果
2:表示程序状态返回码(0-255)
系统预留错误(1,2,127)
echo ${
0}
echo ${
?}
$# -参数个数
$* -参数列表
[email protected] -参数列表
$$ -后去当前shell进行ID
$! -执行上一个指令PID
$*和[email protected]区别
$* 参数列表:将所有的参数组成一个字符串
[email protected] 参数列表:字符串分开
4、Shell脚本语言-字符串
4.1字符串-单引号
4.2字符串-双引号
4.3字符串-拼接
脚本代码
name="Andy"
age=100
sex="男"
info="${name}${age}${sex}"
echo ${
info}
执行结果
Andy100男
脚本代码
name="Andy"
age=100
sex="男"
info="姓名:"${
name}" 年龄:"${
age}" 性别:${sex}"
echo ${
info}
执行结果
姓名:Andy 年龄:100 性别:男
4.4字符串-获取字符串长度
语法结构:${
#变量名}
脚本代码
name="Andy"
echo ${
#name}
脚本结果
4
4.5 字符串-截取
语法:${
变量名:开始位置:截取长度}
脚本代码
案例1:从字符串第四个开始截取,截取3个
name="my name is XQ"
result=${
name:3:3}
echo ${
result}
案例2:从字符串第5个开始截取,到最后一个结束
方式1:
name="my name is XQ"
length=${
#name}
result=${
name:4:length-1}
echo ${
result}
方式2:
name="my name is XQ"
result=${
name:4}
echo ${
result}
4.6字符串-删除
语法一:$(变量名#删除字符串 正则表达式)
作用:从字符串开头(左边),开始匹配要删除的字符串
案例1:
name="my name is XQ"
result=${
name#XQ}
echo ${
result}
原因:匹配不到
案例2:
name="my name is XQ"
result=${
name#my}
echo ${
result}
案例3:查找指定字符第一个,并且删除前面所有的字符(包含自己)
name="my name is XQ"
result=${
name#*X}
echo ${
result}
语法二: $(变量名##删除字符串 正则表达式)
作用:从字符串尾(右边)开始匹配要删除字符串
案例一
name="my name is XQ"
result=${
name##*X}
echo ${
result}
总结:语法1和语法2,都是从左边删除到右边,查找方向不一样
语法三:${
变量名%删除字符串 正则表达式}
从字符串结尾开始匹配,删除匹配的字符串
案例1:查找第一个字符(匹配第一个)
代码一:
name="my name is XQ"
result=${
name%Q}
echo ${
result}
案例2:查找指定字符第一个,并且删除前面所有字符(包含自己)
name="my name is XQ"
result=${
name%m*}
echo ${
result}
语法四:$(变量名%%删除字符串 正则表达式)
案例1:查找指定字符最后一个,并且删除前面所有的字符(包含自己)
name="my name is XQ"
result=${
name%%m*}
echo ${
result}
总结:从左边删除到右边
#-表示查询方向从左到右
##-表示查询方向从右到左
从右边删除到左边
%-表示查询方向从右到左
%%-表示查询方向从左到右
边栏推荐
猜你喜欢
![[day42 literature intensive reading] a Bayesian model of perfect head centered velocity during smooth pursuit eye movement](/img/28/979dceac1454a3e53409a4feb20320.png)
[day42 literature intensive reading] a Bayesian model of perfect head centered velocity during smooth pursuit eye movement

Enhancement: BTE process introduction

Cadence (XI) silk screen printing adjustment and subsequent matters

综合案例、

孙子出题难,儿子监考严。老子不会做,还我上学钱

Usage scenarios for automated testing

Promise详解

C#winform 窗体事件和委托结合用法

C# 事件用法案例 订阅事件+=

The first open source MySQL native HTAP database in China will be released soon! Look at the three highlights first, limited to the surrounding areas, waiting for you~
随机推荐
linux中mysql表名区不区分大小写
孙子出题难,儿子监考严。老子不会做,还我上学钱
小程序支付管理-新版支付对接流程
一体化实时HTAP数据库StoneDB,如何替换MySQL并实现近百倍分析性能的提升
3D激光SLAM:LeGO-LOAM论文解读---摘要
Applet payment management - new payment docking process
LeetCode56. 合并区间
Codeforces Round #810 (Div.2) A-C
An open source OA office automation system
API version control [eolink translation]
Lua有状态迭代器
Am I delayed by the code... Unfortunately, I became a programmer
C language implementation of guessing numbers Games project practice (based on srand function, rand function, switch statement, while loop, if condition criterion, etc.)
IDEA中文乱码怎么办
ADC噪声全面分析 -01- ADC噪声的类型以及ADC特性
API 版本控制【 Eolink 翻译】
防止Cookie修改id欺骗登录
Okaleido ecological core equity Oka, all in fusion mining mode
Shell Scripts相关
Gossip: it's really important to have a rod in your hand and a net on your shoulder. As for how many fish are in the basket?