Linux脚本无法进入目录

系统版本

[root@rsync-test01 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.8 (Santiago)

  

脚本内容

#!/bin/bash
cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace;

  

执行脚本,无法进入指定目录

[oracle@rsync-test01 ~]$ sh a.sh 

  

修改脚本查看执行shell的pid,通过下面,我们可以看出,执行shell的pid不一致,也就是说,在执行shell的时候使用子shell进行执行

[oracle@rsync-test01 ~]$ cat a.sh 
#!/bin/bash
echo $$;
cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace;

[oracle@rsync-test01 ~]$ sh a.sh 
58757
[oracle@rsync-test01 ~]$ echo $$
58716

  

使用. 或者source执行脚本

[oracle@rsync-test01 ~]$ . a.sh 
[oracle@rsync-test01 trace]$ 

  

 

原文地址:https://www.cnblogs.com/hanglinux/p/12360261.html