mis*_*ogs 3 python directory bash shell cd
我正在尝试实现我自己版本的'cd'命令,该命令向用户显示可供选择的硬编码目录列表,并且用户必须输入与列表中的条目对应的数字.该程序,my_cd.py现在命名,然后应该有效地"cd"用户到所选目录.这应该如何工作的示例:
/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2
/bin
$
Run Code Online (Sandbox Code Playgroud)
目前,我正在尝试'cd'使用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
Run Code Online (Sandbox Code Playgroud)
关于如何让这个工作的任何想法?是否可以从python脚本更改我的交互式shell的当前目录?
将您的源bash代码更改为:
#! /bin/bash
function my_cd() {
cd `/path/to/my_cd.py`
}
Run Code Online (Sandbox Code Playgroud)
和你的Python代码在其上完成所有cosmetic输出(消息到用户,菜单等)sys.stderr,最后,而不是os.chdir仅仅print(到sys.stdout)应该更改目录的路径.