我正在尝试实现我自己的“cd”命令版本,该命令向用户提供可供选择的硬编码目录列表,用户必须输入与列表中的条目相对应的数字。现在命名的程序my_cd.py
应该有效地将用户“cd”到所选目录。这应该如何工作的示例:
/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2
/bin
$
目前,我正在尝试使用os.chdir('dir')
. 但是,这不起作用,可能是因为my_cd.py
它是在它自己的子进程中启动的。我尝试将调用包装my_cd.py
在一个名为的源 bash 脚本中my_cd.sh
:
#! /bin/bash
function my_cd() {
/path/to/my_cd.py
}
/some/directory
$ . my_cd.sh
$ my_cd
... shows list of dirs, but doesn't 'cd' in the interactive shell
关于如何让它发挥作用的任何想法?是否可以从 python 脚本更改我的交互式 shell 的当前目录?