zoukankan      html  css  js  c++  java
  • 【Hadoop离线基础总结】linux的shell编程

    linux的shell编程


    基本了解

    • 概述
      Shell是一个用C语言编写的程序,通过shell用户可以访问操作系统内核服务,它类似于DOS下的command和后来的cmd.exe。Shell既是一种命令,也是一种程序设计语言
      Shell Scripts是一种为Shell编写的脚本程序。Shell编程一般指Shell脚本编程,不是指开发Shell自身
      Shell编程跟Java、PHP编程一样,只要有一个能编写代码的文本编辑器,和一个能解释执行的脚本编辑器就可以了
      Linux的Shell种类众多,一个系统可以存在多个Shell,可以通过cat /etc/shells命令查看系统安装的Shell
      Bash由于易用和免费,在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell

    • 格式
      Shell脚本第一行约定俗成写 #!/bin/bash 或者 #!/bin/sh,用来解释所用的Shell内核

    • 执行方式
      第一种方式:权限不足时,可以用 sh xxx.sh 或者 bash xxx.sh 来执行Shell脚本
      第二种方式:用chmod命令给Shell脚本添加执行权限,再用./xxx.sh执行Shell脚本


    Shell变量

    • 格式
    变量=值		比如:your_name="itcash.cn"
    
    • 注意事项
      变量名、等号和值之间不能有空格,同时,变量名的命名必须遵循如下原则:
      1.首个字符必须为字母( a-z,A-Z )
      2.中间不能有空格,可以使用下划线 “_”
      3.不能使用标点符号
      4.不能使用bash里的关键字(可以用help命令查看保留关键字)
      ps. vi编辑模式显示行号 “:set nu”

    • 变量的使用
      使用一个定义过的变量,在变量名前面加 $ 即可

    your_name="itcash.cn"
    echo $your_name
    echo ${your_name}
    #花括号是可加可不加的,加花括号是为了帮助解释器识别变量的边界
    #已定义的变量可以被重新定义
    
    #使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变
    #使用unset命令可以删除变量,不能删除只读变量
    readonly variable_name
    unset variable_name
    
    • 变量类型
      局部变量:仅仅在当前的Shell交互窗口当中有效,其他的窗口无效
      环境变量:所有的Shell窗口共享,都可以使用,范围最大,所有用户都可以共享
      Shell变量:Shell程序设置的特殊变量,只在当前脚本中有效,其他脚本中无效

    • Shell运算符
      Shell和其他编程语言一样,支持包括:算数、关系、布尔、字符串等运算符
      原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现。
      例如:expr -> 一款表达式计算工具,使用它能完成表达式的求值操作
      表达式和运算符之间要有空格,完整的表达式要被``包含,不是单引号

    #!/bin/bash
    a=4
    b=20
    #加法运算
    echo `expr $a + $b`
    #减法运算
    echo `expr $a - $b`
    #乘法运算	注意*号前面要加反斜杠
    echo `expr $a * $b`
    #除法运算
    echo `expr $a / $b`
    
    #运算的另外两种写法
    c=$((1 + 2))
    echo ${c}
    
    d=$[2 - 1]
    echo ${d}
    

    流程控制

    #!/bin/bash
    
    #case语句案例
    ##根据输入的数字给予对应的回复
    echo "请您输入一个1-4之间的整型数字"
    
    echo "您输入的数字为:"
    read aNum
    
    case $aNum in
     1)
       echo "您输入的数字为1"
     ;;
     2)
       echo "您输入的数字为2"
     ;;  
     3)
       echo "您输入的数字为3"
     ;;
     4)
       echo "您输入的数字为4"
     ;;
     *)
       echo "您输入的数字有误"
     ;;
    esac
    

    函数使用

    • 概述:
      所有函数在使用前必须定义,这意味着必须将函数放在脚本开始处,直到Shell解释器首次发现它时才可以使用

    • 格式:

    [ function ] funname [()]{
    action;
    [return int;]
    }
    
    • 函数参数
    #!/bin/bash
    
    #定义我们自己的函数,并在Shell脚本中调用
    function hello(){
      echo "传入给我的第一个参数为"$1
      echo "abc"
      echo "给我传点参数"
    }
    
    #调用函数
    hello $1
    
  • 相关阅读:
    网络流练习
    Noip2018 游记
    4719: [Noip2016]天天爱跑步
    1875: [SDOI2009]HH去散步
    P2619 [国家集训队2]Tree I
    1493: [NOI2007]项链工厂
    P1710 地铁涨价
    P3694 邦邦的大合唱站队
    P1439 【模板】最长公共子序列
    P1132 数字生成游戏
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772504.html
Copyright © 2011-2022 走看看