samueleagle 发表于 2005-9-2 09:38:33

问个简单的问题,怎么改变当前工作目录

我自己写了个bash教本:

#!/bin/bash
cd ~/AA/BB/CC/DD/EE
pwd

但是我在terminal中执行它之后,虽然上面pwd命令显示的结果是AA/BB/CC/DD/EE,但是terminal的当前工作目录却没有变化?我应该怎么写这样的教本?

高手赐教,谢谢先! :?:

dreamboat 发表于 2005-9-2 12:07:23

这里有个办法,假如你的脚本为:test.sh
,并在当前目录下
执行: . ./test.sh

注意前面那个 “."

goodboy1881 发表于 2005-9-2 12:52:58

脚本执行结束之后,
bash退到现在的执行环境。
就算是你在脚本里面做了什么
export VAR="word"
也不会起作用的。
要不然不就乱了?

demonlj 发表于 2005-9-2 13:02:49

楼上:请找些时间学习下shell的进程问题
楼主:一般情况下,调用shell脚本执行是在现在正运行父进程下,开了个子进程.所有在shell脚本中运行的结果都只是子进程的事情,当回到父进程,这些结果会失去作用
但是如果用"."或者是source命令的话就可以解决此问题,即要求系统不要开辟子进程给shell脚本,而是在当前进程直接运行此脚本,这样所有在shell脚本中得到的结果都对当前进程有效

samueleagle 发表于 2005-9-2 15:39:23

自己仔细看了看O'Reilly的学习Bash,找到了答案,使用source就可以了,就像demonlj说的一样。谢谢各位了。
页: [1]
查看完整版本: 问个简单的问题,怎么改变当前工作目录