#!/bin/bash
for file in /home/robust/*.txt
do
echo "$file" #输出文件路径
echo "${file:0-16:8}" #从倒数16位开始,往后截取8位
hive << EOF #输入重定向
use database;
load data local inpath '$file' overwrite into table table_name [partition (store_day=$(file:0-16:8))];
EOF
done
chmod +x ./shell.sh
输入重定向:
我们经常在shell脚本程序中用<<EOF重定向输入,将我们输入的命令字符串作为一个执行程序的输入,这样,我们就不需要在那个程序环境中手工输入命令,以便自动执行我们需要的功能。
当然这个标志性字符不能用保留字,最常用的还是EOF。
需要注意的是,第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错。