Hadoop离线_Linux Shell编程增强

shell编程

  1. 概述
    Shell是一个用C语言编写的程序,通过shell用户可以访问操作系统内核服务,它类似于DOS下的command和后来的cmd.exe。Shell既是一种命令,也是一种程序设计语言
    Shell Scripts是一种为Shell编写的脚本程序。Shell编程一般指Shell脚本编程,不是指开发Shell自身
    Shell编程跟Java、PHP编程一样,只要有一个能编写代码的文本编辑器,和一个能解释执行的脚本编辑器就可以了
    Linux的Shell种类众多,一个系统可以存在多个Shell,可以通过cat /etc/shells命令查看系统安装的Shell。
    sh,bash由于易用和免费,在日常工作中被广泛使用。同时,sh,bash也是大多数Linux系统默认的Shell
  2. 规则
  • Shell脚本第一行约定俗成写 #!/bin/bash 或者 #!/bin/sh,用来解释所用的Shell内核
  • 代码
    变量
    格式
    变量=值 比如:your_name="itcash.cn"
    注意
    变量名、等号和值之间不能有空格,同时,变量名的命名必须遵循如下原则:
    1.首个字符必须为字母( a-z,A-Z )
    2.中间不能有空格,可以使用下划线 “_”
    3.不能使用标点符号
    4.不能使用bash里的关键字(可以用help命令查看保留关键字)
    使用
    使用一个定义过的变量,在变量名前面加 $ 即可
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}

乘法运算时,需要加\用作*号的转意,除了变量赋值不需要打空格,其他地方都要打空格

流程控制
关于if语句、for循环和while循环 Linux shell编程基础
case语句

#!/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

与java语言的差异,开头有case,结尾需要esac,read 变量,可以从键盘写入

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

[ function ] funname [()]{
action;
[return int;]
}

函数传参:

#!/bin/bash
function hello(){
  echo "传入给我的第一个参数为"$1
  echo "abc"
  echo "给我传点参数"
}

#调用函数
hello $1

创建函数时,function可以省略,函数体里的$1,接收的是调用函数时的$1,调用函数的$1接受的是运行时(外界)传入的参数值

  1. 执行方式
    第一种方式:权限不足时,可以用 sh xxx.sh 或者 bash xxx.sh 来执行Shell脚本
    第二种方式:用chmod命令给Shell脚本添加执行权限,再用./xxx.sh执行Shell脚本
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页