zoukankan      html  css  js  c++  java
  • 让你十分钟学会shell

    1、先介绍下shell的工作原理
      Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。
      这是shell脚本简单明了的语法,给很多码农尤其是运维还是带来不少好处,尤其是和Python的结合,在大数据方面可谓是一骑绝尘。

    2、

      Lesson-01  第一个简单的shell

    1 #!/usr/bin/bash
    2 echo 'Hello world'
    3 
    4 chmod +x a.sh
    5 sh a.sh
    6 
    7 output:
    8 Hello world

      Lesson-02  Shell中的变量

     1 #!/usr/bin/bash
     2 myvariable='hello world' #注意没有空格
     3 mynum=100
     4 echo $myvariable
     5 echo ${myvariable}
     6 echo $mynum
     7 
     8 output:
     9 hello world
    10 hello world
    11 100

      Lesson-03 Shell中的简单的运算

     1 #!/usr/bin/bash
     2 a=3
     3 b=5
     4 val=`expr $a + $b`
     5 echo "Total value:$val"
     6 
     7 val=`expr $a - $b`
     8 echo "Total value:$val"
     9 
    10 val=`expr $a * $b`
    11 echo "Total value:$val"
    12 
    13 val=`expr $a / $b`
    14 echo "Total value:$val"
    15 
    16 val=`expr $a % $b`
    17 echo "Total value:$val"
    18 
    19 output:
    20 Total value:8
    21 Total value:-2
    22 Total value:15
    23 Total value:0
    24 Total value:3

      Lesson-04 Shell中的比较运算符

     1 #!/usr/bin/bash
     2 a=2
     3 b=2
     4 c=3
     5 
     6 if [ $a == $b ]
     7 then
     8 echo "a is equal to b"
     9 fi
    10 
    11 
    12 if [ $a != $c ]
    13 then
    14 echo "a is not equal to b"
    15 fi
    16 
    17 output:
    18 a is equal to b
    19 a is not equal to b

      Lesson-05 Shell中的关系运算符

     1 #!/usr/bin/bash
     2 
     3 a=10
     4 b=10
     5 c=30
     6 
     7 if [ $a -eq $b ]
     8 then
     9 echo "a is eq b"
    10 else
    11 echo "false"
    12 fi
    13 
    14 if [ $a -ne $b ]
    15 then
    16 echo "true"
    17 else
    18 echo "false"
    19 fi
    20 
    21 if [ $a -gt $b ]
    22 then
    23 echo "a is gt b"
    24 else
    25 echo "a is not gt b"
    26 fi
    27 
    28 if [ $a -ge $b ]
    29 then
    30 echo "true"
    31 else
    32 echo "false"
    33 fi
    34 
    35 output:
    36 a is eq b
    37 false
    38 a is not gt b
    39 true

      Lesson-06 Shell中的字符串

     1 #!/usr/bin/bash
     2 
     3 h="hello"
     4 w="world"
     5 str=$h" "$w
     6 echo $str
     7 
     8 echo ${str:0:5}
     9 echo ${str:1}
    10 
    11 output:
    12 ello world
    13 hello
    14 ello world
    

      Lesson-07 Shell中的数组

     1 #!/usr/bin/bash
     2 
     3 array=(11 12 13 14 15)
     4 array2=(aa bb cc dd ee)
     5 value=${array[3]}
     6 echo $value
     7 
     8 #获取数组长度
     9 length=${#array[*]}
    10 echo $length
    11 
    12 #数组循环
    13 for cname in ${array2[@]}
    14 do
    15 echo $cname
    16 done
    17 
    18 output:
    19 14
    20 5
    21 aa
    22 bb
    23 cc
    24 dd
    25 ee

      Lesson-08 Shell中的test命令

     1 -e file #文件存在则返回true
     2 -f file #文件存在可读则返回true
     3 -w file #文件存在可写则返回true
     4 -x file #文件存在可执行则返回true
     5 -s file #文件存在并不为空则返回true
     6 -S file #文件存在并为空则返回true
     7 -d file #文件目录存在则返回true
     8 
     9 #!/usr/bin/bash
    10 
    11 filename=aa.txt
    12 echo $filename
    13 
    14 if test -e $filename
    15 then
    16 echo "file is exist"
    17 else
    18 echo "file is not exist"
    19 fi
    20 
    21 if test -r $filename
    22 then
    23 echo "the file is readable"
    24 else
    25 echo "the file is not readable"
    26 fi
    27 
    28 if test -s $filename
    29 then
    30 echo "the file is not empty"
    31 else
    32 echo "the file is empty"
    33 fi

      Lesson-09 Shell中的for循环

     1 #!/usr/bin/bash
     2 for i in {1..5}
     3 do
     4 echo $i
     5 done
     6 
     7 
     8 for i in {12 15 17}
     9 do
    10 echo $i
    11 done
    12 
    13 for file in ./*
    14 do
    15 echo $file
    16 done
    17 
    18 output:
    19 1
    20 2
    21 3
    22 4
    23 5
    24 12
    25 15
    26 17
    27 ./a.sh
    28 ./aa.txt
    29 ./b.sh
    30 ./c.sh
    31 ./d.sh
    32 ./e.sh
    33 ./f.sh
    34 ./g.sh
    35 ./h.sh
    36 ./ii.sh

      Lesson-10 Shell中的while循环

     1 #!/usr/bin/bash
     2 count=0
     3 while [ $count -lt 5 ]
     4 do
     5 count=`expr $count + 1`
     6 echo $count
     7 done
     8 
     9 output:
    10 1
    11 2
    12 3
    13 4
    14 5

      Lesson-11 Shell中的函数

     1 #!/usr/bin/bash
     2 
     3 #$0为自己 pp.sh
     4 #$1为第一个参数
     5 ##$为参数个数
     6 
     7 num1=$1
     8 num2=$2
     9 function AddFun
    10 {
    11 #read -p "Enter a number:" num1
    12 #read -p "Enter another number:" num2
    13 echo $[ $num1 + $num2 ]
    14 }
    15 result=`AddFun`
    16 echo "The Result is :$result"
    17 
    18 sh pp.sh 2 3
    19 output:
    20 The Result is :5

      Lesson-12 Shell中其他相关操作

     1 覆盖重定向 sh aa.sh > aa.txt
     2 追加重定向 sh bb.sh >> bb.txt
     3 
     4 
     5 $0 :即命令本身
     6 $1 :第一个参数.
     7 $2, $3, $4 ... :第2、3、4个参数,依次类推。
     8 $# 参数的个数,不包括命令本身
     9 $@ :参数本身的列表,也不包括命令本身
    10 $* :和$@相同,但"$*""$@"(加引号)并不同,"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组。

    OVER!
    本文为本人原创,转载时请注明出处,Thanks!

  • 相关阅读:
    PowerDesigner中生成SQL SERVER2005字段注释 和导出图片的方法
    右键显示打开控制台
    dubbo 的 Protocol 类
    nacos 的 grpc
    shell 替换文本中 为空格,多行为本合并为一行
    gcc、python3、python性能分析工具安装
    kafka listeners和advertised
    Default Activity not found 问题解决
    使用Global Mapper计算kml中面状图形的面积
    jeecg-boot 报表组——折线图初始化显示部分图例,部分变灰
  • 原文地址:https://www.cnblogs.com/gide/p/7156891.html
Copyright © 2011-2022 走看看