Li Kai

  • 主页
  • 所有文章
文章分类 友情链接 关于我

Li Kai

  • 主页
  • 所有文章

Shell基础

2016-03-28

本文用来记录一些基本的shell语法。平时用的脚本备份在lk668 github

1. 删除变量

1
unset name

2. shell字符串

单引号:原样输出,不能有变量
双引号可以有变量

1
2
3
4
5
#获取字符串长度
str="abcdefg"
echo ${#str} 7
echo ${str:1:4} 输出bcde
echo `expr index "$str" a` 输出1,a在字符串str中的位置

3. shell数组

1
2
3
4
5
#定义数组
a=(1 2 3)
echo ${a[@]}输出a中所有的元素
#获取数组元素的个数
echo $

4. 传递参数

1
2
3
4
5
6
7
./test.sh 1 2 3
$0 = test.sh
$1 = 1
$2 = 2
$3 = 3
$$ 脚本运行进程ID
$# 传递到脚本的参数的个数

5. 运算符

算数运算符

1
2
3
4
5
a=10
b=100
val = `expr $a + $b`
\* / + - % (expr执行)
= == !=

关系运算符

  • -eq 相等为true
  • -ne 不等为true
  • -gt 左边是否大于右边
  • -lt 左边是否小于右边
  • -ge 左边是否大于等于
  • -le 左边是否小鱼等于
    1
    2
    3
    4
    5
    6
    7
    8
    a=10
    b=100
    if [$a -eq $b]
    then
    echo "$a -eq $b: a 等于 b"
    else
    echo "$a -eq $b: a 不等于 b"
    fi
    布尔运算符
  • !非运算
  • -o或运算
  • -a与运算
  • 逻辑运算符
  • &&与运算 [[ $a -lt 100 && $b -gt 100 ]]
  • ||或运算 [[ $a -lt 100 || $b -gt 100 ]]

6. 流程控制

if-else

1
2
3
4
5
6
7
8
9
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi

for循环

1
2
3
4
5
6
7
8
for str in 'This is a string'
do
echo $str
done
for loop in 1 2 3 4 5
do
echo $loop
done

while循环

1
2
3
4
5
6
int=1
while(( $int<=5 )) #双括号
do
echo $int
let "int++"
done

case

1
2
3
4
5
6
7
8
9
10
11
12
13
14
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
  • shell

扫一扫,分享到微信

微信分享二维码
数据结构-栈
Hello World
  1. 1. 1. 删除变量
  2. 2. 2. shell字符串
  3. 3. 3. shell数组
  4. 4. 4. 传递参数
  5. 5. 5. 运算符
  6. 6. 6. 流程控制
收藏文章
登录
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
取消上传
评论内容为空!
还没有评论,快来抢沙发吧!
  • 最新评论
该评论已关闭!
likai博客正在使用畅言云评
去社区看看吧
去热评看看吧
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
    手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
    Golang高级教程(二)类型断言 | LiKai的博客
  • 算法(二)深度优先搜索DFS | LiKai的博客
    算法(二)深度优先搜索DFS | LiKai的博客
  • 数据结构-队列 | LiKai的博客
    数据结构-队列 | LiKai的博客
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
  • 算法(二)深度优先搜索DFS | LiKai的博客
  • 数据结构-队列 | LiKai的博客
热评话题
  • 数据结构-队列 | LiKai的博客
  • 算法(五)回溯 | LiKai的博客
  • 算法(八)最短路径 | LiKai的博客
  • Python高级用法 | LiKai的博客
  • 算法(三)二分查找 | LiKai的博客
  • SQL基础教程(四) | LiKai的博客
  • Golang高级教程(一)for-range, switch, select使用 | LiKai的博客
关闭
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
  • 你收到0条新通知
  • 你有0条评论收到赞同
  • 你有0条新回复
  • 本日畅言云评热评新鲜出炉啦!
  • 你有0个任务已完成
  • 你收获0个畅言云评足迹
© 2021 Li Kai
Hexo Theme Yilia by Litten
  • 文章分类
  • 友情链接
  • 关于我

tag:

  • test
  • 数据结构
  • shell
  • 计算机网络
  • 数据库
  • 负载均衡
  • ovn
  • 算法
  • linux
  • kubernetes
  • sql
  • python
  • openstack
  • designate
  • neutron
  • golang
  • timewheel

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 手把手教你如何用golang实现一个timewheel时间轮

    2021-04-04

    #算法#golang#timewheel

  • Golang线程池实现百万级高并发

    2021-03-21

    #golang

  • 基于ECMP的多活负载均衡策略

    2020-12-12

    #负载均衡

  • neutron metadata 服务详解

    2020-10-11

    #openstack#neutron

  • ovn为外部主机提供dhcp服务

    2020-09-20

    #ovn

  • Neutron网络troubleshooting

    2020-09-09

    #openstack#neutron

  • kubernetes中pod的自动伸缩

    2020-04-05

    #kubernetes

  • Golang高级教程(二)类型断言

    2020-02-04

    #golang

  • Golang高级教程(一)for-range, switch, select使用

    2020-02-02

    #golang

  • Kubernetes容器安全之Apparmor

    2020-01-04

    #kubernetes

  • 网络性能测试

    2019-09-19

    #计算机网络

  • 算法(十一)刷题常用语法python/go

    2019-07-18

    #算法#python#golang

  • 算法(十)快速排序

    2019-07-10

    #算法#python#golang

  • 算法(九)记忆化搜索

    2019-06-08

    #算法

  • linux常用指令

    2019-03-31

    #linux

  • OpenStack Designate简介

    2019-03-03

    #openstack#designate

  • 算法(八)最短路径

    2018-12-09

    #算法

  • 算法(七)并查集

    2018-10-21

    #算法

  • 算法(六)二叉树

    2018-09-19

    #算法

  • 算法(五)回溯

    2018-07-19

    #算法

  • Python yield使用

    2018-07-09

    #python

  • 算法(四)前缀和

    2018-07-05

    #算法

  • 算法(三)二分查找

    2018-05-19

    #算法

  • 算法(二)深度优先搜索DFS

    2018-04-20

    #算法

  • Python装饰器

    2018-04-19

    #python

  • Python高级用法

    2018-04-09

    #python

  • 算法(一)单调栈

    2018-03-19

    #算法

  • Python单例模式

    2018-03-08

    #python

  • Python编程规范

    2017-05-09

    #python

  • SQL基础教程(四)

    2017-04-19

    #数据库#sql

  • SQL基础教程(三)

    2017-04-11

    #数据库#sql

  • SQL基础教程(二)

    2017-03-24

    #数据库#sql

  • SQL基础教程(一)

    2017-03-19

    #数据库#sql

  • 9.计算机网络-QOS

    2016-08-19

    #计算机网络

  • 8.计算机网络-网络安全(下)

    2016-08-08

    #计算机网络

  • 7.计算机网络-网络安全(上)

    2016-08-01

    #计算机网络

  • 6.计算机网络-应用层

    2016-07-27

    #计算机网络

  • 5.计算机网络-传输层

    2016-07-24

    #计算机网络

  • 4.计算机网络-网络层

    2016-07-22

    #计算机网络

  • 3.计算机网络-数据链路层

    2016-07-17

    #计算机网络

  • 2.计算机网络-物理层

    2016-07-14

    #计算机网络

  • 1.计算机网络概述

    2016-07-09

    #计算机网络

  • Hash算法实现之MD5

    2016-04-09

    #算法

  • 数据结构-链表

    2016-04-02

    #数据结构

  • 数据结构-队列

    2016-04-01

    #数据结构

  • 数据结构-栈

    2016-03-31

    #数据结构

  • Shell基础

    2016-03-27

    #shell

  • Hello World

    2016-03-24

    #test

  • 我的博客园
  • 我的CSDN1
  • 我的CSDN2
李凯
研究生毕业于北邮
现就职于腾讯

一名奋斗在
OpenStack(Python)
Kubernetes(Golang)
的搬运工