版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZDY2017/article/details/80572508
#获取相对路径(比如本文件的位置在/home/temp),则basepath的值为/home
basepath=$(cd `dirname $0`; cd .. ;pwd)
echo $basepath
#通过basepath确定需要读取的properties文件
source $basepath/xxx/xxx/yyyy.properties
#验证hdfs路径
echo "路径:" $file_path
#替换路径中全部的/为``
temp=${file_path//\//``}
#两者的长度相减获取差值
temploopnum=`expr ${#file_path} - ${#temp}`
loopnum=`expr $temploopnum - 3`
#处理路径
file_path=${file_path%/*}
echo $file_path
#声明数组
declare -a arr
#循环
for((i=0;i<loopnum;i++));
do
arr[i]=$file_path
file_path=${file_path%/*}
done
echo "数组元素为: ${arr[@]}"
#遍历验证
for((i=${#arr[@]}-1;i>=0;i--));
do
echo ${arr[i]}
hadoop fs -test -e ${arr[i]}
if [ $ -eq 0 ] ;then
echo '存在'
else
echo '目录不存在'
hadoop fs -mkdir -p ${arr[i]}
hadoop fs -chmod 777 ${arr[i]}
fi
done