写个切换目录的小shell脚本
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。关于SHELL的其它一些历史及作用,回头去度娘那看吧。
这两天学习ARM程序的裸奔测试,编译的makefile在一个文件夹,而生成的bin文件又在另一个文件夹,有时还要切换到其它目录更改文件,来回切换甚是麻烦,于是决定写个小脚本,用来切换不同的目录,好吧,linux才只会几个命令,不过没关系,借助度娘开始写吧。。。
写个带参数的小shell程序,可以打印当前路径,可以切换不同的目录:
#!/bin/bash
#-----------------------------------------------------------
#文件名称:where_to_go
#
#作 用:跳转到相关目录
#
#备 注:执行时用 . where_to_go
#----------------------------------------------------------
# 打印当前目录路径
CUR_DIR=$(pwd)
echo -e "The current path is : \n \033[36m $CUR_DIR \033[0m "
#选择要跳转的路径
echo "where do you want to go?"
echo -e "1:vmShare\n2 : home\n3 : source\n4 : binary\n5 : build"
read -p "input the number:" WH
if [ "$WH" == "1" ]; then
# 跳转到以下目录共享目录下
cd /mnt/hgfs/0_VMwareShare/
elif [ "$WH" == "2" ]; then
# 跳转到$HOME根目录下
cd $HOME/
elif [ "$WH" == "3" ]; then
# 跳转到$HOME/SBC8600/AM335X_StarterWare_02_00_00_06/examples/sbc8600/
cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/examples/sbc8600/
elif [ "$WH" == "4" ]; then
# 跳转到$HOME/SBC8600/AM335X_StarterWare_02_00_00_06/binary/armv7a/gcc/am335x/sbc8600/
cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/binary/armv7a/gcc/am335x/sbc8600/
elif [ "$WH" == "5" ]; then
#跳转到 $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/build/armv7a/gcc/am335x/sbc8600
cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/build/armv7a/gcc/am335x/sbc8600/
else
echo "Ther is no document path"
fi
需要注意的是,执行前需要修改权限,用下面的命令修改:
chmod +x where_go_to.sh
执行的时候用”.+空格+where_go_to.sh”
如果用“./”来执行,不会跳转的要去的目录
好吧,先凑合着用吧,回头等学的多了,再优化吧,现在当务之急是学习uboot与系统裁剪,当前还有驱动开发………
最后,再吼一下俺的口号:
每天进步一点点,开心多一点^_^
--2017年3月13日 15:27:27