背景:cmake创建build目录,在编译的时候需要进入某个特定的build下的子目录中,进行make。当目录层级较深时,显得很累。
打个比方:工程目录是/root/server/test/cc_svr/uc_client_next 那么对应的build目录就是:/root/server/test/build/cc_svr/uc_client_next
本着懒惰是第一生产力的优秀原则,今天搞个脚本,不用每次都用好几秒钟进入对应目录。翠花,上酸菜。
#!/bin/bash
###########################################
# 往返跳转 build目录和非build目录
###########################################
dir=$(pwd)
echo $dir
array=(${dir })
has_build=0 # 是否有build目录
for var in ${array[@]}
do
#echo $var
if [[ $var == "build" ]];
then
has_build=1
fi
done
new_dir="" # 构建新目录
idx=0 # 因为存放在三级目录下,如果修改目录曾经,需要修改这个值
for var in ${array[@]}
do
if [[ $idx == 3 ]];
then
if [[ $has_build == 1 ]];
then
idx=`expr $idx + 1`
continue
fi
new_dir=$new_dir"/build"
fi
new_dir=$new_dir"/"$var
idx=`expr $idx + 1`
#echo $new_dir
#echo $idx
done
echo $new_dir
cd $new_dir
打开 ~/.bashrc,加入 alias cdb='source 脚本目录及脚本名'
然后 source ~/.bashrc
就可以使用cdb进入目录了,完美