转载:

http://imysqldba.blog.51cto.com/1222376/616805

shell 脚本执行有三种方法
bash 脚本名 sh 脚本名 chmod +x 脚本名
使用下面语句测试
#a.sh(扩展名可不要)
cd /
pwd
echo "complete"
然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径
[fedora@localhost ~]$ bash a.sh
/
complete
[fedora@localhost ~]$
原因分析:
执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录。
解决方法:
法一: 用 source a.sh就行了。
法二:
[fedora@localhost ~]$ cd ~
[fedora@localhost ~]$ chmod u+x a.sh
[fedora@localhost ~]$ . ./a.sh
/
complete
[fedora@localhost /]$
对于 $ . ./a.sh
第一个点是bash的内部命令,表示在当前shell中运行
后面的“./a.sh”是命令的参数,即要执行的脚本
注:两点之间要有空格

一个小脚本:oop 目录或者文件,若为目录,则进入该目录,若为文件,则编辑改文件:
1. oop.sh的代码#/bin/sh
   # open a file or directory
   $1 >& /dev/null
   if [ -d $1 ];then
   cd $1;
   else
   vim $1;
   fi
2. 别名oop为source /tmp/oop.sh:
alias oop='source /tmp/oop.sh'

以后执行oop 命令后,文件夹、文件随心所欲

最新文章

  1. Oracle日期时间函数大全
  2. Redis系列一之数据结构
  3. TP框架自动加载优先级
  4. 【final】站立会议---11.28
  5. SIP中OPTIONS方法的用法及示例
  6. jQuery 事件 - load() 方法
  7. 设置layoutControl1 中的 控件的 focus
  8. ORACLE:profile的管理
  9. juquery验证插件validation addMethod方法使用笔记
  10. JS根据key值获取URL中的参数值,以及把URL的参数转换成json对象
  11. ACM-简单题之Least Common Multiple——hdu1019
  12. DropDownList和GridView用法
  13. org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别
  14. js算法集合(二) javascript实现斐波那契数列 (兔子数列)
  15. 【一天一道LeetCode】#104. Maximum Depth of Binary Tree
  16. [Swift]LeetCode41. 缺失的第一个正数 | First Missing Positive
  17. php 合并图片 (将活动背景图片和动态二维码图片合成一张图片)
  18. VMware中某个虚拟机卡死,单独关闭某个虚拟机的办法
  19. Debian9 使用 Docker 安装 gitlab完整过程
  20. Linux下部署多个Tomcat(完整)

热门文章

  1. 在WPF的MVVM框架中获取下拉选择列表中的选中项
  2. 【Swift】学习笔记(六)——函数
  3. MantisBT 问题分配显示 姓名
  4. cocos2d 3.3 lua 代码加密 luac
  5. C/C++学习:函数指针
  6. Rails中关联数据表的添加操作(嵌套表单)
  7. 卷积操作中的矩阵乘法(gemm)—— 为什么矩阵乘法是深度学习的核心所在
  8. Oracle实例和Oracle数据库(Oracle体系结构)---转载
  9. vmvare如何安装xp虚拟机
  10. dozer初探