QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2302|回复: 4

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

[复制链接]
发表于 2005-9-2 09:38:33 | 显示全部楼层 |阅读模式
我自己写了个bash教本:

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

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

高手赐教,谢谢先!
发表于 2005-9-2 12:07:23 | 显示全部楼层
这里有个办法,假如你的脚本为:test.sh
,并在当前目录下
执行: . ./test.sh

注意前面那个 “."
回复

使用道具 举报

发表于 2005-9-2 12:52:58 | 显示全部楼层
脚本执行结束之后,
bash退到现在的执行环境。
就算是你在脚本里面做了什么
export VAR="word"
也不会起作用的。
要不然不就乱了?
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-9-2 15:39:23 | 显示全部楼层
自己仔细看了看O'Reilly的学习Bash,找到了答案,使用source就可以了,就像demonlj说的一样。谢谢各位了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-18 09:26 , Processed in 0.058855 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表