原标题:.bashrc 文件 函数形式缩写参数
工作中有很多经常使用到的命令,扩展开就是一大串。用函数式缩写的形式可以完成快速开发(偷懒)。
注意要source .bashrc
#hive search 注意 有参数时候必须有路径!
hs(){
# ${!#} 获取最后一个参数
output="$*"
# 去除最后一个参数
nfdown=`echo $output | awk '{for(i=1;i<=NF-1;i++) printf $i" "}'`
HIVE_HOME="/hdfs/hivename/"
# !#为第0个参数时替换为空
hdfs dfs ${nfdown:--ls} $HIVE_HOME/${!#/$0/}
}
部分使用方法提出来,作为笔记。
awk 中 print 默认有换行 | NF FS 、OFS、RS 、ORS |
${nfdown:--ls}当nfdown变量为空时,用-ls替代 | |
${!#} 获取最后一个参数 | $# 获取参数个数 ${$#} 获取最后一个参数失败(不能在花括号内使用美元符,必须将美元符换成感叹号) |
${!#/$0/} 当最后一个参数为第零个参数时,使用空字符串取代 | ${str/str1/str2} 将str中str1字符串取代为str2 |
优化后(不能使用hdfs的find功能):
# 基于hdfs dfs 查询hive仓库
# hive search
hs(){
HIVE_HOME="/warehouse/tablespace/managed/hive"
# 最后一个参数 存在 - 时判断未输入路径 否则进入下边判断
if [[ ${!#} == "-"* ]];then
hdfs dfs ${@:--ls} $HIVE_HOME
else
nfdown=`echo $* | awk '{for(i=1;i<=NF-1;i++) printf $i" "}'`
# !#为第0个参数时替换为空
hdfs dfs ${nfdown:--ls} $HIVE_HOME/${!#/$0/}
fi
}