注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
懒猫爱飞的个人空间 https://home.eeworld.com.cn/space-uid-238351.html [收藏] [复制] [分享] [RSS]
日志

Linux学习日志(11))- 写个切换目录的小shell脚本

热度 1已有 995 次阅读2017-3-21 17:32 |个人分类:linux学习日志| Linux

写个切换目录的小shell脚本

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。关于SHELL的其它一些历史及作用,回头去度娘那看吧。

这两天学习ARM程序的裸奔测试,编译的makefile在一个文件夹,而生成的bin文件又在另一个文件夹,有时还要切换到其它目录更改文件,来回切换甚是麻烦,于是决定写个小脚本,用来切换不同的目录,好吧,linux才只会几个命令,不过没关系,借助度娘开始写吧。。。

写个带参数的小shell程序,可以打印当前路径,可以切换不同的目录:

[python] view plain copy
  1. #!/bin/bash  
  2. #-----------------------------------------------------------  
  3. #文件名称:where_to_go  
  4. #  
  5. #作    用:跳转到相关目录  
  6. #  
  7. #备    注:执行时用 . where_to_go   
  8. #----------------------------------------------------------  
  9. # 打印当前目录路径  
  10. CUR_DIR=$(pwd)  
  11. echo -e "The current path is : \n \033[36m $CUR_DIR \033[0m "  
  12. #选择要跳转的路径  
  13. echo "where do you want to go?"  
  14. echo -e "1:vmShare\n2 : home\n3 : source\n4 : binary\n5 : build"  
  15.   
  16. read -p "input the number:" WH  
  17.   
  18. if [ "$WH" == "1" ]; then  
  19.     # 跳转到以下目录共享目录下  
  20.     cd /mnt/hgfs/0_VMwareShare/  
  21. elif [ "$WH" == "2" ]; then  
  22.     # 跳转到$HOME根目录下  
  23.     cd $HOME/  
  24. elif [ "$WH" == "3" ]; then  
  25.     # 跳转到$HOME/SBC8600/AM335X_StarterWare_02_00_00_06/examples/sbc8600/  
  26.     cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/examples/sbc8600/  
  27. elif [ "$WH" == "4" ]; then  
  28.     # 跳转到$HOME/SBC8600/AM335X_StarterWare_02_00_00_06/binary/armv7a/gcc/am335x/sbc8600/  
  29.     cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/binary/armv7a/gcc/am335x/sbc8600/  
  30. elif [ "$WH" == "5" ]; then  
  31.     #跳转到 $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/build/armv7a/gcc/am335x/sbc8600  
  32.     cd $HOME/SBC8600/AM335X_StarterWare_02_00_00_06/build/armv7a/gcc/am335x/sbc8600/  
  33. else  
  34.    echo "Ther is no document path"  
  35. fi  


需要注意的是,执行前需要修改权限,用下面的命令修改:

chmod +x where_go_to.sh

   执行的时候用”.+空格+where_go_to.sh”

   如果用“./”来执行,不会跳转的要去的目录

好吧,先凑合着用吧,回头等学的多了,再优化吧,现在当务之急是学习uboot与系统裁剪,当前还有驱动开发………


最后,再吼一下俺的口号:

每天进步一点点,开心多一点^_^

--2017年3月13日 15:27:27

发表评论 评论 (1 个评论)
回复 codeword 2024-11-4 07:16
  

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章