shell脚本自定义函数及其调用

news/2024/7/7 21:06:02

1. 在util.sh脚本中自定义函数

#!/usr/bin/env bash

# 检查环境变量是否存在
function assert_env_var_exist {
    local var_name=$1
    if [ -z $var_name ];then
        log "ERROR: " "${BASH_SOURCE[*]}" "${LINENO}" "Failed: Check env var: $var_name"
        exit -1
    fi
}

# 在hdfs上创建目录
function mkdir_hdfs {
    local path=${1}
    ${HADOOP_HOME}/bin/hdfs dfs -mkdir -p $path
    if_error_exit "make hdfs dir $path"
}

2. 调用

#!/bin/bash
source /etc/profile
source util.sh

# hive表join
function join_table(){
    local runDt=$1
    local t1="/user/hive/test.db/table1/pt=${runDt}*/_SUCCESS" && check_hdfs_exist ${v1} ${v2} 
    local t2="/user/hive/test.db/table2/pt=${runDt}*/_SUCCESS" && check_hdfs_exist ${v1} ${v2}

    hive -hiveconf mp_queue=${mp_queue} \
        -hiveconf runDt=${runDt} \
        -hiveconf runNextDt=${runNextDt} \
        -hiveconf runPrevDt=${runPrevDt} \
        -f join.hql
    if_error_exit "run table_new: ${runDt}"
    ${HADOOP_HOME}/bin/hdfs dfs -touchz /user/hive/test.db/table_new/dt=${runDt}/_SUCCESS
}

# 调用
join_table ${dt}


http://lihuaxi.xjx100.cn/news/1441409.html

相关文章

WiFi小工具homedale,可以切换同名WiFi节点

有一个很小众的需求,就是多个路由器组网时候,PC有时不会自动切换同名WiFi,homedale这个工具可以满足手动切换需求 这个界面可以看到所有节点列表,可以看到有很多同名的 可以选择自己想要的那个,比如信道/信号强度&am…

Monkey测试真的靠谱吗?

Monkey测试,顾名思义,就是模拟一只猴子在键盘上乱敲,从而达到测试被测系统的稳定性。Monkey测试,是Android自动化测试的一种手段,Monkey测试本身非常简单,Android SDK 工具支持adb Shell命令,实…

bs4练习

bs4练习 工具目的代码运行结果 工具 pycharm 目的 网址:http://ip.yqie.com/ipproxy.htm,原url不能用,更换url为:http://www.66ip.cn/index.html 用bs4来做一个简单的爬虫,爬取某个ip网址里的免费ip,获取每个ip的代理IP地址、端…

Vue中路由缓存问题及解决方法

一.问题 Vue Router 允许你在你的应用中创建多个视图,并根据路由来动态切换这些视图。默认情况下,当你从一个路由切换到另一个路由时,Vue Router 会销毁前一个路由的组件实例并创建新的组件实例。然而,有时候你可能希望保持一些页…

Web 自动化测试学会这一招,下班至少早一小时

♥ 前 言 大家都知道,我们在通过 Selenium 执行 Web 自动化测试时,每次都需要启动/关闭浏览器,如果是多线程执行还会同时打开多个,比较影响工作的正常进行。那有没有办法可以不用让浏览器的自动化执行干扰我们的工作呢&#xf…

剑指 Offer 46. 把数字翻译成字符串(动态规划)

文章目录 题目描述思路分析完整代码 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多…

Controller是单例还是多例?

Controller是单例还是多例? controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。 我们下面来简单的验证下: package com.riemann.springbootdemo.controller;import org…

章节4:Burp Target模块

章节4:Burp Target模块 Burp渗透测试流程 01 Target模块的作用 与HTTP History的区别 HTTP History按时间顺序记录Target按主机或者域名分类记录(字母顺序) Target模块的作用 把握网站的整体情况对一次工作的域进行分析分析网站存在的攻…