作者robinliao (qqq)
站内Linux
标题Re: [问题] 请问在bash底下使用cd指令
时间Mon Jan 20 11:06:45 2014
您好:
简单来说,前面的post已经有前辈已经回答使用source可以达到您要的目的。
小弟简单说明一下背後的原因
执行script 预设的行为会fork一个新的shell 执行您的script,结束後会回到原本环境。
您可以想像从目前command line下执行下面3 个指令是类似的行为。
1. bash
2. cd /tmp
3. exit
* 确认方法1 (需要知道什麽是PID和PPID)
1. echo $$ #显示目前shell PID
2. 写一个script内容如下
#!/bin/sh
echo $$ # 显示目前script使用的shell PID
ps -o pid,ppid $$ # 显示目前script使用的shell PID和parent ID
3. 执行该shell,观察1 和2的差别
* 确认方法2
1. 在您的script内 cd後再执行pwd观察
因此您的行为在新的shell下已经正常执行了,想要让script影响到目前shell
可以使用source如前所述。详细情况可以man bash再搜寻source
另外如果您只是要使用script省去打[cd 一堆字串]的方法的话,alias 也是一个
可以参考的方式。
※ 引述《layumi (虔心向学)》之铭言:
: 不好意思 , 小弟是linux新手 , 最近想自己写个简单bash shell
: 目前执行的bash档案在/home/123底下
: 想要执行bash档案之後让目录变成 /home/456
[deleted]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.236.222
※ 编辑: robinliao 来自: 61.227.236.222 (01/20 11:07)
1F:推 wgst88w:推一个~ 01/20 11:23