zoukankan      html  css  js  c++  java
  • 【shell】shell基础脚本合集

    1.向脚本传递参数

    #!/bin/bash
    #功能:打印文件名与输入参数
    #作者:OLIVER
    
    echo $0 #打印文件名
    echo $1 #打印输入参数
    

    执行结果:

     image

    2.在脚本中使用参数

    #!/bin/bash
    #功能:输入参数的使用
    #作者:OLIVER
    
    cp $1 $2 #根据输入参数复制文件到指定位置

    执行结果:

    image

    3.函数的使用

    #!/bin/bash
    #功能:函数的使用
    #作者:OLIVER
    
    run(){
    echo "Hell world"
    }
    run
    

    运行结果:

    image

    4.连接两个字符串

    #!/bin/bash
    #功能:字符串连接
    #作者:OLIVER
    
    var1="My name is :"
    var2="Tom"
    var=${var1}${var2}
    echo $var

    image

    5.两个整数相加

    #!/bin/bash
    #功能:两个整数相加
    #作者:OLIVER
    
    a=3
    b=4
    let sum=$a+$b
    echo "The sum is :$sum"
    

    image

    除了上述方法还有其他的方法:a=1 b=2

    echo $((a+b)) #方法2

    echo $[ $a+$b ] #方法3

    expr $a + $b #方法4

    echo $a+$b|bc #方法5

    awk 'BEGIN{print '"$a"'+'"$b"'}' #方法6


    6.检查文件系统中是否存在某个文件

    声明:文件夹/qinys/oliver下存在文件a.txt

    #!/bin/bash
    #功能:判断文件是否存在
    #作者:OLIVER
    if [ -f /qinys/oliver/a.txt ];then
    echo "File exists"
    else
     echo "File not exists"
     fi

    运行结果:

    image

    7.shell脚本中的三种循环语法

    #!/bin/bash
    #功能:三种循环
    #作者:OLIVER
    
    #for循环
    for((i=0;i<=5;i++));
    do
    echo "for循环第$i次"
    done
    
    echo "===================="
    #while循环
    count=1
    while [ $count -lt 5 ];
    do
    echo "while循环第$count次"
    let count++
    done
    
    echo "===================="
    #until循环
    cnt=1
    until [ $cnt -gt 5 ];
    do
    echo "until循环第$cnt次"
    let cnt++
    done

    image

    8.读取文件的第5行

    head -5 filename | tail -1

    9.使用echo截取字符串的一部分

    语法:

    echo ${var:x:y}

    x: 起始位置(不包含)

    y:截取长度

    例子:

    Linux:/qinys/oliver # str="My name is OLIVER"&&echo ${str:3:4}
    name

    10.echo ${str:-2}与echo ${str: -2}的区别

    假如:str=abcd

    echo ${str:-2}:表示当str为空的时候,则赋予值-2

    echo ${str: -2}:表示截取str的后两位

    11.echo命令替换字符串的一部分

    echo ${variable//pattern/replacement}

    12.去除字符串中的空格

    Linux:/qinys/oliver # echo "a c djk"|tr -d " "
    acdjk

    13.输出0到20之间5的倍数

    Linux:/qinys/oliver # for (( i=0; i<=20; i=i+5 )); do echo "Welcome $i times"; done
    Welcome 0 times
    Welcome 5 times
    Welcome 10 times
    Welcome 15 times
    Welcome 20 times


  • 相关阅读:
    HashMap按键排序和按值排序
    LeetCode 91. Decode Ways
    LeetCode 459. Repeated Substring Pattern
    JVM
    LeetCode 385. Mini Parse
    LeetCode 319. Bulb Switcher
    LeetCode 343. Integer Break
    LeetCode 397. Integer Replacement
    LeetCode 3. Longest Substring Without Repeating Characters
    linux-网络数据包抓取-tcpdump
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10287731.html
Copyright © 2011-2022 走看看