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" ...
随机推荐
- function_exists (),method_exists()与is_callable()的区别
is_callable()函数要高级一些,它接受字符串变量形式的方法名作为 第一个参数,如果类方法存在并且可以调用,则返回true.如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方 ...
- log4j.properties总结
一.以自己的log4j.properties为例: # 配置根Logger,格式:log4j.rootLogger = [ level ] , appenderName1, appenderName2 ...
- JavaScript对象的几种创建方式与优缺点
JavaScript中常见的几种创建对象的方式有:Object构造函数模式.对象字面量模式.工厂模式.自定义构造函数模式.构造函数加原型组合模式:他们各自有各自的优缺点和使用场景. 1. Object ...
- Socket.io 入门 - Renyi的博客
Socket.io Vue 中使用 NPM 安装 npm install vue-socket.io --save npm install --save socket.io-client 引用 详情 ...
- 29.eval函数
eval 函数 eval() 函数十分强大 -- 将字符串 当成 有效的表达式 来求值 并 返回计算结果 123456789101112131415 # 基本的数学计算In [1]: eval(&qu ...
- 从假图片到假新闻,AI就这样“控制”了我们
在评论某位新蹿红的明星时,围观群众总是习惯性地先从长相上来判定,如"像周润发和梁朝伟的合体"."刘德华和郭富城的合体"等--反正比"黄渤和王宝强的合体 ...
- Centos 7 安装Mysql8 主从同步复制
环境:Centos 7 软件:Mysql8 安装方式:Yum 1.从官网下载最新yum 源对应Cenots 7 版本安装: [root@DataNode-03 ~]# yum -y localinst ...
- 最近做的一个Spring Boot小项目,欢迎大家访问 http://39.97.115.152/
最近做的一个Spring Boot小项目,欢迎大家访问 http://39.97.115.152/,帮忙找找bug,网站里有源码地址 网站说明 甲壳虫社区(Beetle Community) 一个开源 ...
- Spring事务Transactional和动态代理(一)-JDK代理实现
系列文章索引: Spring事务Transactional和动态代理(一)-JDK代理实现 Spring事务Transactional和动态代理(二)-cglib动态代理 Spring事务Transa ...
- Py基础之函数
'''函数是指一类同类事物的抽象,而且这种抽象可以拓展,并且可以用在同一类事物上'''print (abs(-100),abs(100)) #abs函数是python内置的函数,可以用来求绝对值#pr ...