学习大数据:shell编程

1、 shell
(1) 创建文件设置权限
① touch xxx.sh
1) #!/bin/bash
2) Echo ‘hello world’s
3) :x
② chmod u+x xxx.sh
③ ./xxx.sh
(2) 变量
① 系统变量 echo $PATH printf ‘%s\n%s\n%s\n’ $PATH $PWD $USER
$UID $HOME $HOSTNAME
set:显示所有系统变量
② 自定义变量
1) 数据类型:
a. 弱类型(通常为字符串、数值)
b. 数组([val1,…,valn])
2) 声明变量:VAR=VALUE
a. 变量命名组成规则同java变量
b. =两侧不能有空格
c. 赋值
a) A=123
b) A=herry ‘Herry Chen’ “1 and 2”
c) A=ls -la?A=$(ls -la)
3) 取消变量:
Unset VAR
4) 变量的作用域:
a. 环境变量:跨shell访问
b. 全局变量:当前shell中访问
a) 每个shell会话都是独立进程拥有独立PID,不同shell会话之间不会相互交叉影响
b) 函数中的变量默认也是全局变量
c. 局部变量:当前函数中访问
函数中声明局部变量:local A=5
d. 预定义变量
a) $? 最后一次执行命令的返回状态 0表示正常 其他表示异常
b) $$ 当前进程的进程编号PID
c) $! 后台运行的最后一个进程编号PID
5) 输入参数 ./xxx.sh 1 2 3 调用shell脚本传参
a. $0 命令本身
b. $n int(n>0) 表示第几个参数
c. $ 所有参数(整体)
d. $@ 所有参数(个体)
e. $# 参数数量
(3) 注释
① 单行注释:#
② 多行注释::<<! xxxxxx !
(4) 控制台输入
read -t SECONDS -p “HINT” VAR
1) -t 超时(秒)
2) -p 提示
3) VAR 控制台输入值赋值的变量
(5) 运算符
① 算术运算符(+ -
/ =)和算术表达式
1) 运算符:同java
2) 表达式
a. $((EXP)) S=$((2+3))
b. $[EXP] S=$[23]
c. expr EXP 分布计算
注意:*表示乘法,其他相同,运算符前后必须加空格
S=`expr 2 \
3`
d. let 简单表达式
② 关系运算符和条件表达式condition前后有空格
1) [ condition ] -eq -ne -gt -lt -ge -le
2) test condition 同上
3) [[ condition ]] 同上
③ 逻辑运算符
1) ! 非
2) -o 或
3) -a 且
(6) 逻辑控制
① 分支结构
if [ condition ]
then
语句块
fi

if [ condition1 ]
then
语句块
elif [ condition2 ]
then
语句块
else
语句块
fi

case $VAR in
V1)
语句块
;;
V2)
语句块
;;
*)
语句块
;;

esac
② 循环
for VAR in val1 … valn
do
语句块
done

for((初始化;条件;变化))
do
语句块
done

while [ condition ]
do
语句块
done

2、 系统命令
(1) dirname path 获取目录
(2) basename path 获取文件名

学习大数据:shell编程

上一篇:ubuntu 更换数据源


下一篇:linux 创建SWAP分区