| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 大数据之路 03 -> 正文阅读 |
|
[大数据]大数据之路 03 |
大数据之路Shell 编程1.shell操作linux的桥梁 创建: 后缀为.sh的文件 编写: 头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上) 运行: 1.通过sh命令执行 例如:sh helloworld.sh 2.通过bash命令执行 例如:bash helloworld.sh 3.通过把文件修改为可执行的文件然后通过./文件命令.sh来执行 例如:./helloworld.sh(必须在当前目录下)
2.变量(动态数据类型,没有数据类型的限制,并且必须初始化) 定义和初始化 格式 变量名称=值 例如: x=10 "abc edefg" 注意: 等号两边不能有空格 使用:通过$区分变量还是一句话 格式1: $变量 格式2: ${变量} 注意: 格式1,会把$后所有相连内容看做一个变量 格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分 3.$0...$n:表示接收外部参数(执行脚本时,传递的参数) 格式: $下标 注意: $0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数) 下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标 $*获取所有参数 $#获取所有参数个数
单引号:安原字符串输出 双引号:可以引用变量,拥有特殊含义的内容 拼接:连续获取变量 注意: 如果有多个引号,连续的形成一对 引号中使用其他引号,其他引号做字符串使用
5.字符串 获取长度 格式: ${#变量} 截取: 格式: ${变量:开始位置:长度} 注意: ${str::5}:从0获取5个 ${str:0}:从0获取到末尾 替换单个 格式: ${变量/旧/新} 注意:从左向右替换第一个 替换所有 格式: ${变量//旧/新} 注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值 删除 从头开始删除 ${变量#表达式}:匹配第一个删除 ${变量##表达式}:匹配最后一个删除 从尾开始删除 ${变量%表达式}:匹配第一个删除 ${变量%%表达式}:匹配最后一个删除 注意:从未开始删除,表达式还是从左向右去写 删除不会再原字符上进行修改,想要修改原字符串只能从新赋值
6.运算符 算术运算符 bash不支持简单的数学运算,可以通过命令实现expr 格式1:
注意:符号两边需要加上空格,并且是反引号 格式2: $[值+值] 比较运算符: > < >= <=.... 格式: $值符号值 注意:比较的结果用1(true)和0(false)表示 逻辑运算符: &/and |/or !/not 例如: #判断2>1结果 echo $[2 > 1] #反转2>1结果 echo $[!$[2>1]] # 反转后面的结果2>1 and 2>3 false0 echo $[!$[$[2>1]&$[2>3]]] echo $[2>1 & 2<1] 7.if语句 格式1: if 判断条件 then 判断为true执行的代码 fi 格式2: if 判断条件 then 判断为true执行的代码 else 判断为false执行的代码 fi 格式3: if 判断条件 then 判断为true执行的代码 elif 判断条件 then 判断为true执行的代码 。。。 else 判断为false执行的代码 fi 注意:else可加可不加 判断条件的写法 运算符 说明 举例 -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。 -ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。 -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。 -ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。 -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。 []:[]两边加空格,符号两边加空格并且符号前加转义符 可以使用字母
[[]]:[[]]两边加空格,符号两边加空格 可以使用字母
():弃用 (()):不需要加空格,但是不能使用字母 在使用变量时,不需要使用$
8.for java格式: for ((初始化变量;判断条件;控制语句)) do 执行语句 done python格式: for 变量 in 结果集 do 执行语句 done 结果集: {开始..结束}含头含尾,不能引用变量
例如:获取1-100的奇数和偶数和 jsum=0 osum=0 for i in {1..100} do if ((${i}%2==0)) then #osum+=${i} 结果做了拼接 不是算术运算 #osum= #osum=$[${i}+${osum}] let osum+=i else let jsum+=i fi done echo 偶数和为:${osum} echo 奇数和为:${jsum} 注意: 使用let在计算时可以直接使用变量
9.read:键盘录入 格式: read 变量1 变量2 ...变量n 注意: 键盘录入时,允许给多个变量进行赋值,值和值之间以空格切分 打印三角形 for i in {1..5} do for j in do echo -n "* " done echo "" done
操作 通过下标获取数据 格式: ${数组[下标]} 注意: 直接引用数组变量,默认获取下标为0的元素 下标使用*表示获取所有 获取长度: 格式: ${#数组[*]}
11.函数 格式: function 方法名(){ 方法体 return 数字; }
注意:function和return可加可不加 $0...$n表示接收参数,$0永远是脚本名称(忽略) 方法的调用直接使用方法名不加() return只能返回数字范围在0-255之间 $?接收返回值只能接收一次
12.获取当前日期时间 ate +"%Y-%m-%d %H:%M:%S" 格式化日期时间: date -d today +"%Y-%m-%d %H:%M:%S" 加减日期时间 date +%Y%m%d //显示前天年月日 date +%Y%m%d --date="+1 day" //显示前一天的日期 date +%Y%m%d --date="-1 day" //显示后一天的日期 date +%Y%m%d --date="-1 month" //显示上一月的日期 date +%Y%m%d --date="+1 month" //显示下一月的日期 date +%Y%m%d --date="-1 year" //显示前一年的日期 date +%Y%m%d --date="+1 year" //显示下一年的日期 13.重定向:执行命令的结果写写入到文件 标准输入文件(stdin):stdin的文件描述符为0,默认从stdin读取数据。 标准输出文件(stdout):stdout 的文件描述符为1,默认向stdout输出数据。 标准错误文件(stderr):stderr的文件描述符为2,向stderr流中写入错误信息。 使用>,>>默认是把正确信息写入文件 想要把错误信息和正确信息写入文件需要后面追加2>&1(把错误信息当做正确信息去处理) 14.定时器: 格式: *(分钟) *(小时) *(星期) *(几号) *(月份) commend 通过crontab -e添加定时任务 查看定时任务是否执行了,看日志tail -f /var/log/cron 注意: 定时器或脚本中涉及到路劲的全部给绝对路劲 * * * * * 每分钟 */1 * * * * 每分钟 0 */1 * * * 每小时 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/19 16:21:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |