shell 常用的语句整合

1.shell脚本基本设置

1.1 首行

#!/bin/bash

1.2 脚本内设置参数

export  PATH=$PATH

2.执行脚本

2.1调用hive(hive  -e/-f )

 hive  --hiveconf tez.application.tags="xx/xx"  --hiveconf hive.metastore.uris="xx/xx"  -hivevar tableName=$tableName  -hivevar partition=$partition  -hivevar date=$date  -f  ${xx}/xx.sql 

2.2调用spark

spark-sql --hiveconf hive.metastore.uris="xx/xx" -f ${xx}/xx.sql &  #循环内容放到后台执行

2.3执行jar包

javac -cp xx/xx-1.0-SNAPSHOT.jar(jar包路径)  com.xx.xx.xx(main方法)

javac -jar xx/xx-1.0-SNAPSHOT.jar(jar包路径)

3.set 设置一些配置

使用场景:

echo "xxx"

set +e

java -jar $xx

run_code=$?

set -e

最常用的两个参数就是 -e 与 -x ,一般写在 shell 代码逻辑之前,这两个组合在一起用,可以在 debug 的时候替你节省许多时间 。

set -x 会在执行每一行 shell 脚本时,把执行的内容输出来。它可以让你看到当前执行的情况,里面涉及的变量也会被替换成实际的值。

set -e 会在执行出错时结束程序,就像其他语言中的“抛出异常”一样。(准确说,不是所有出错的时候都会结束程序,见下面的注)

4 上传文件

4.1 aws

echo "[`date`] - 上传 $target_file_name 到表路径 $upload_table_path"

aws s3 cp $target_file_name $upload_table_path

4.2 lftp

lftp sftp://xx@ip -p 22 -e "

ls /xx/xx/xx/xx(地址)

exit

"

4.3 hdfs

hdfs dfs -put s3://xx

5 常见使用场面

5.1 错误退出

if [ "$?"-ne 0]; then echo "command failed"; exit 1; fi

5.2  将导出的文件按指定行数拆分成多个文件

基本用法:split [-bl] file [prefix]

参数说明:
-b, --bytes=SIZE :对 file 进行切分,每个小文件大小为 SIZE 。可以指定单位 b,k,m 。
-l, --lines=NUMBER :对 file 进行切分,每个文件有 NUMBER 行。

prefix:分割后产生的文件名前缀。

链接:(6条消息) 用shell切分文件--split_未来可7-CSDN博客_shell split

实际代码样例:

cd ${split_data_dir}
rm -f *

# 将导出的文件按指定行数拆分成多个文件,以供后续任务使用
split -l $split_num ${source_data_file} $split_prefix
if [[ $? -ne 0 ]];then
  echo "拆分${source_data_file}失败"
  exit 1
fi

echo "拆分文件路径:$split_data_dir"
echo "拆分文件列表:$(ls -l $split_data_dir)"

echo "############ The shell $0 completed. ##################"

5.3 创建路径

mkdir -p -m 755 /xx/xx/

5.4 删除路径

rm -rf /xx/xx

6 时间处理

指定月份,加减日期

mth_2=`date +'%Y-%m-%d' -d "2 month 2020-10-01"`

当前日期,加减日期

mth_1=`date +'%Y-%m' -d '-1 month'`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值