我想运行一个脚本来简单地更改当前工作目录:
#!/bin/bash
cd web/www/project
Run Code Online (Sandbox Code Playgroud)
但是,运行后,当前密码保持不变!我怎样才能做到这一点?
我已经阅读了这个问题和答案,但它并不适合我的问题,即使它很相似。
我正在编写一个脚本(称为 cpj),它将启动我当前的项目之一。我有大约 5 个。当我打字
$ cpj blah
我希望当前工作目录更改为 blah 项目目录(我保存在 $PROJDIR 中),并且我希望 emacsclient 打开该项目的主文件(我保存在 $MAINFILE 中)。
我引用的问题说你不能直接改变运行脚本的 shell 的环境,但你可以获取一个脚本,它会这样做。
为了测试这一点,我编写了一个 shell 脚本(称为 chcwd),其中有一行:
cd $1
如果,从命令行我做:
$ . chcwd $PROJDIR
我当前的工作目录将根据需要更改。另一方面,如果从我的 cpj 脚本中,我有相同的行:
. chcwd $PROJECT
它不会改变 shell 的当前工作目录。我意识到我正在运行 2 个脚本(cpj,然后是 chcwd),因此创建了 2 个 shell,但我看不出有什么办法可以完成我想要的。谁能告诉我如何实现我的目标?