zoukankan      html  css  js  c++  java
  • Shell 概述、截取字符操作等

    Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互。

    Linux的Shell种类众多,常见的有:

    • Bourne Again Shell (/bin/bash
    • Bourne Shell(/bin/sh或/usr/bin/sh)
    • C Shell(/usr/bin/csh)
    • K Shell(/usr/bin/ksh)

    Bourne Again Shell (Bash) 由于易用和免费,在日常中被广泛使用。同时也是大多数Linux系统默认的Shell。

    第一个 Shell脚本

    使用文本编辑器vi/vim ,新建一个文件 kimbo_test.sh, 扩展名.sh 代表Shell。 

    ps: 扩展名并不影响脚本执行,用于标识(见名知意)

    #!/bin/bash
    
    echo "Hello World!"

    "#!" 是一个约定标记,告诉系统需要什么解释器执行,即使用哪一种Shell

    • 加执行权限 chmod +x vi kimbo_test.sh
    • 执行: sh kimbo_test.sh
    • 返回结果:Hello World!

    Shell 只有单行注释,使用符号 "#"


    Shell 变量

    1.定义:必须使用字母、下划线

    2.使用: 用美元符号 "$" ,加上变量名

    #!/bin/bash
    
    ## 定义变量
    my_name="kimbo"
    ## 打印变量
    echo ${my_name}

    说明:大括号用来表明变量的边界,也可以 直接使用 $my_name 。为了可读性、防止歧义,建议使用大括号

    Shell 字符串

    单引号:属于强引用,任何字符都会原样输出

    双引号:属于弱引用,可以解析变量、转义字符 (尽可能使用双引号)

    1. 拼接字符串
    #!/bin/bash
    
    ## 定义变量
    my_name="kimbo"
    my_work="data analysis"
    
    ## 拼接变量
    my_result="my name is ${my_name},my work is ${my_work}."
    ## 打印变量
    echo ${my_result}

      2.获取字符串长度

    #!/bin/bash
    
    ## 定义变量
    my_name="kimbo"
    ## 打印变量,取字符串长度
    echo ${#my_name}

      3.截取部分字符

    语法:${str:start:len},start表示从哪里开始截取,len表示 总共截取多少位。

    • 左边第一个字符用 0 表示,右边第一个字符用 0-1 表示
    #!/bin/bash
    
    ## 定义变量
    my_name="kimbo"
    ## 打印变量,从左边第2个字符开始,截取3位
    echo ${my_name:1:3}

       4. 其他截取方式

    语法:

    ${var#*str} 最小限度从左边截取str
    ${var##*str} 最大限度从左边截取str
    ${var%str*} 最小限度从右边截取str
    ${var%%str*} 最大限度从右边截取str

    #!/bin/bash
    
    ##定义变量
    my_website="https://www.cnblogs.com//kimbo"
    ## 打印变量
    echo "var is: ${my_website}"
    ## 从左边开始查找,截取右边的字符(保留后面)
       ## 最小限度
    echo "1: ${my_website#*//}"
       ## 最大限度
    echo "2: ${my_website##*//}"
    ## 从右边开始查找,截取左边的字符(保留前面)
       ## 最小限度
    echo "3: ${my_website%//*}"
       ## 最大限度
    echo "4: ${my_website%%//*}"

    运行结果:

       5. 字符替换

        i) 首次替换:${var/source_str/dest_str}

        ii)全部替换:${var//source_str/dest_str}

    #!/bin/bash
    
    test_str="this is kimbo,he is a humor guy. by kimbo zhang."
    echo "单替换:${test_str/kimbo/kobe}"
    echo "全部替换:${test_str//kimbo/kobe}"

    运行结果:

    -------> by kimbo_zhang
  • 相关阅读:
    Django学习笔记8
    Django杂记
    Django学习笔记7
    MongoDB
    python爬虫pyquery库详解
    python爬虫urllib库详解
    Django学习笔记13
    OpenCV(二)
    [译文]casperjs的API-colorizer模块
    什么是探索性测试?
  • 原文地址:https://www.cnblogs.com/kimbo/p/6362665.html
Copyright © 2011-2022 走看看