一 变量

[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脚本基础-语法的更多相关文章

  1. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  2. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  3. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  4. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  5. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  6. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

  7. -Shell 教程 Bash 脚本 基础语法 MD

    目录 目录 Shell 简介 Shell 脚本 Shell 环境 第一个shell脚本 Shell 变量 定义变量 使用变量 只读变量 删除变量 Shell 字符串 单引号 双引号 字符串基本操作 S ...

  8. 模块一:shell 脚本基础

    一.shell脚本介绍 (一)脚本案例及介绍: #!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if ["$UID -ne "$ROOT_UID&q ...

  9. shell脚本基础知识以及变量

    一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...

随机推荐

  1. 16各种设计LOGO标准尺寸

    继续抄写文章 网页设计标准尺寸: 1.800*600下,网页宽度保持在778以内, 2.1024*768下,网页宽度保持在1002以内, 3.在ps里面做网页可以在800*600状态下显 4.在PS里 ...

  2. 吴裕雄--天生自然KITTEN编程:对话

  3. 用Express 4和 MongoDB打造Todo List

    本篇文章主要參考自DreamersLab - 用Express和MongoDB寫一個todo list.原文的教學內容是使用Express 3.x版,在這邊做簡單Express 4.12.1的todo ...

  4. 大忙人的jdk8,比出生晚了好几个激情的夏天

    写给大忙人的jdk8到手了,第一件事情就蒙蔽了,mac装的jdk7,切换jdk的功能要整出来才行,下好jdk8up101安装,假装几行代码搞定目标在命令行下,可以通过命令'jdk6', 'jdk7', ...

  5. 美团新零售招聘-高级测试开发(20k-50k/月)

    内推邮箱:liuxinguang@meituan.com 地点:北京 职位级别:p2-2以上级别 15.5薪

  6. golang实现chunk方式的查询

    有一个需求,是把表里面所有的数据都查询出来,并且生成json文件.因为一张表里面的数据很多,所以不可能一次性全部查询出来,所以需要用到chunk.之前用的gorm,但是发现gorm没有chunk方式的 ...

  7. php获取远程图片并把它保存到本地

    /* *功能:php多种方式完美实现下载远程图片保存到本地 *参数:文件url,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ function getImage( ...

  8. Flutter Widgets 之 RichText

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序离不开文字的展示,因此文字的排版非常重要 ...

  9. Failed to open the key database file. c;\\User\\w\\Destop\\SecureCRT_FX6.5.3\\Config\\KnowHosts\\Hostsmap.txt这个问题的解决方法

    1.首先将这段错误在百度翻译上面查询一下,是什么意思,查询结果如下: 打开密钥数据库文件失败.C:\用户\ w \平台\ securecrt_fx6.5.3 \\ \\ \\ hostsmap.txt ...

  10. 【译】使用FormData对象

    系列文章说明 原文 FormData对象能让你生成一系列用于XMLHttpRequest发送的键值对.它主要的目的在于发送表单数据,但也能独立用于传输有键形式的数据.其传输的数据格式和表单使用subm ...