• shell编程入门


    • shell就是操作系统的外层。

    • Hello World:

      #!/bin/bash
      echo 'Hello World'
      

      !/bin/shell 这是shell的头,必须指定;

      编辑完成之后要赋予可执行的权限。chmod o+x XXX.sh

      然后执行./XXX.sh或者/bin/bash XXX.sh或者sh XXX.sh就可以运行这个文件了

    • 定义变量与引用变量

      #!/bin/bash
      #这是局部变量的定义
      B=wang
      A=123
      echo "$A-$B"
      

      SHELL创建的环境变量:

      $0--------当前程序名称

      $n--------当前程序的第n个参数,$0输出当前程序名称,$1输出后面的参数

      $*--------当前程序的所有参数(不包括程序本身)

      $#-------当前程序的参数个数(不包括程序本身)

      $?--------命令或程序执行完后的状态,一般返回0表示执行成功

      $UID---------当前用户ID,0代表root

      $PWD--------当前所在目录

    $UID表示转义

    echo "$UID IS $UID"

    • if条件判断

      #!/bin/bash
      NUM1 = 1
      NUM2 = 2
      if(($NUM1 > $num2));then
      	echo "123"
      else
      	echo "321"
      fi
      

      逻辑运算符:

      -f 判断文件是否存在。 eg: if [ -f filename]

      -d 判断目录是否存在。 eg:if [ -d dir]

      -a 相当于and

      -o 相当于or

      -z 空字符串

    mkdir -p 递归创建目录

    多条件判断

    #!/bin/bash
    A=1
    B=2
    if(($A > $B));then
    	echo "123"
    	exit
    elif(($A == $B));then
    	echo "321"
    else
    	echo "123"
    fi
    
    • for循环

      for 变量 in 字符串

      do

      语句1

      done

      #!/bin/bash
      for i in `seq 1 15`
      do
      	echo "num is $i"
      done
      

      计算和

      #!/bin/bash
      j=0
      for ((i=1;i<=100;i++))
      do
      	j=`expir $i + $j`
      done
      echo $j
      

      查看脚本执行过程:sh -x XXX.sh | more

    • while循环

      while [[$i < 10]];do
      	echo $i;
      	((i++));
      done
      

      扩展:

      read -p "please input num: " input

      回车然后输入123

      echo $input

      这个时候就会输出123

      逐行读取一个文件(/etc/hosts)

      #!/bin/bash
      while read line
      do
      	echo $line
      done </etc/hosts
      
    • util循环语句

      util 条件

      do

      ​ action

      done

      直到满足条件才退出,否则一直执行action

    • case选择语句

      case $arg in

      ​ pattern1)

      ​ 语句1

      ​ ;;

      ​ pattern2)

      ​ 语句2

      ​ ;;

      *)

      语句3

      ;;

      esac

    • select选择语句

      select一般用于选择菜单的创建,可以配合PS3来做菜单的打印输出信息

      select i in "Centos" "redhat" "ubuntu" ;do echo "Select you use system:" $i ;done

      回车会打印

      1)Centos

      2)redhat

      3)ubuntu

      输入1回车会打印Select you use system:Centos

    • 定义数组

      A = {test1 test2 test3}

      echo ${A[0]},输出test1

      echo ${A[@]},输出所有参数

      echo ${#A[@]},显示数组个数

      echo ${A[@]/test2/test5},替换test2为test5

      unset A[2],移除test3

    • 函数

      function command{

      ​ 命令

      }

      如何调用函数:只要command即可

    • sed命令

      我们用vi来修改文件内容时,假设将文件内的12批量替换成51

      需要输入:%s/12/51/g

      我们用sed命令:

      sed ‘s/12/51/g’ xxx.txt

      此时如果不加任何参数,sed不会应用修改,只是缓存起来了。

      sed -i ‘s/12/51/g’ xxx.txt

      就会应用修改。

      在行首添加一个空格:

      sed 's/^/&需要在行首添加的字符/g' xxx.txt

  • 相关阅读:
    Android中的Handler, Looper, MessageQueue和Thread
    ANR程序无响应原因及应对办法
    避免内存泄露的一些简单方法
    android内存泄露及OOM介绍
    listview异步加载图片优化
    利用convertView及viewHolder优化Adapter
    Sqlite介绍及其语句
    关于单页面和传统页面跳转的思考
    快速入门Vue
    JS编码
  • 原文地址:https://www.cnblogs.com/mwss/p/12500073.html
Copyright © 2020-2023  润新知