shell脚本基础-语法
一 变量
[root@T_FOOT-Home2-ZZZ01 ~]# a=hello
[root@T_FOOT-Home2-ZZZ01 ~]# echo $a
hello
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${a}_world
hello_world
其实$a和${a}作用相同,但是为了防止字符串在拼接时,计算机无法区分变量和拼接的字符串,所以需要加上{}
二 提取命令的输出
[root@T_FOOT-Home2-ZZZ01 ~]# pwd
/root
[root@T_FOOT-Home2-ZZZ01 ~]# echo $(pwd)
/root
三 条件赋值(${var:-/=/?/+string})
1 ${var:-string}:是指如果var为空,那么就输出string的值,如果var不为空,那么就输出var的值
2 ${var:=string}:是指如果var为空,那么就输出string的值,并且把string的值赋给var,如果var不为空,那么就输出var的值
3 ${var:?string}:是指如果var为空,那么就输出错误信息 -bash: var: string,如果var不为空,那么就输出var的值
4 ${var:+string}:和${var:-string}相反,如果var为空,那么打印var的值,如果var不为空,那么就打印string的值
四 $((exp))
[root@T_FOOT-Home2-ZZZ01 ~]# echo $((3+2))
5
五 模式匹配替换
${var%pattern},${var%%pattern} 从右边开始匹配
${var#pattern},${var##pattern} 从左边开始匹配
${var%pattern},${var#pattern} 表示最短匹配,匹配到就停止
${var%%pattern},${var##pattern} 表示最长匹配
通配符
*:表示零个或多个任意字符
?:表示零个或一个字符
[...]:表示匹配中括号里面到字符
[!...]:表示不匹配括号里面到字符
[root@T_FOOT-Home2-ZZZ01 ~]# f=a.tar.gz
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f##*.}
gz
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f#*.}
tar.gz
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f%%.*}
a
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f%.*}
a.tar
六 提取字节
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f:0:2}
a.
获取f从下标为0的字节以后两个字节
[root@T_FOOT-Home2-ZZZ01 ~]# echo ${f:1}
.tar.gz
提取f从下标为1的字节之后到所有字节
七 字符串替换
${file/dir/path}:将第一个dir 替换为path
${file//dir/path}:将全部dir 替换为 path
${#var}:可计算出变量值${var}的长度
八 输出重定向
echo "hello world" >> tempfile 将hello world复制到tempfile文件中,再打印出来
九 输入重定向
wc << flag
其本质就是把输入到内容缓存下来作为命令输出
十 流程控制
if-then语句
if xx1 then
xx1s
elif xx2 then
xx2s
else
xx3s
fi
十一 case
case ... esac
十二 for
十三 while
十四 until
十五 break和continue
十六 test命令
参照连接 https://blog.csdn.net/aimarrow/article/details/80870180
shell脚本基础-语法的更多相关文章
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- shell脚本-基础
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
- -Shell 教程 Bash 脚本 基础语法 MD
目录 目录 Shell 简介 Shell 脚本 Shell 环境 第一个shell脚本 Shell 变量 定义变量 使用变量 只读变量 删除变量 Shell 字符串 单引号 双引号 字符串基本操作 S ...
- 模块一:shell 脚本基础
一.shell脚本介绍 (一)脚本案例及介绍: #!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if ["$UID -ne "$ROOT_UID&q ...
- shell脚本基础知识以及变量
一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...
随机推荐
- Spring中@Resorce和@Autowired的区别
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了.@Resource有两个属性是比较重要的,分 ...
- web虚拟主机的三种配置方法
- SSM框架三分钟搞定分页查询
使用的国产第三方jar pagehelper 里面的基本属性值 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 ...
- css 控制li点与文字的距离
ul>li 默认的样式如下 前面的点与文字是有间距的 可见,通过设置 text-indent 属性可以调整li点与文字的距离
- Android APP性能及专项测试(个人整理)
移动测试. Android测试 .APP测试 Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android ...
- L2-013 红色警报(25 分)
L2-013 红色警报(25 分)战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是 ...
- LeetCode~1033.移动石子直到连续
1033.移动石子直到连续 三枚石子放置在数轴上,位置分别为 a,b,c. 每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z.从位置 x 或者是位置 z ...
- Docker深入浅出系列 | 单机Nginx+Springboot实战
目录 Nginx+Springboot实战 前期准备 实战目标 实战步骤 创建Docker网络 搭建Mysql容器 搭建额度服务集群 搭建Nginx服务 验证额度服务 附录 Nginx+Springb ...
- 使用 GitHub 开源项目申请 IntelliJ License
一.写在前面 这次要介绍的是通过使用 GitHub 上的开源项目来申请 IntelliJ Pycharm 的正版 License,只需在 GitHub 上准备一个维护超过3个月的开源项目,就能免费使用 ...
- py基础之无序列表
'''dic是一个可以将两个相关变量关联起来的集合,格式是dd={key1:value1,key2:value2,key3:value3}'''d = { 'adam':95, 'lisa':85, ...