一尘不染

使用python脚本在Shell中更改工作目录

linux

我想实现一个userland命令,该命令将使用其参数之一(路径)并将目录更改为该目录。程序完成后,我希望外壳位于该目录中。所以我想cd用外部程序来实现命令。

可以在python脚本中完成还是必须编写bash包装器?

例:

tdi@bayes:/home/$>python cd.py tdi
tdi@bayes:/home/tdi$>

阅读 552

收藏
2020-06-07

共1个答案

一尘不染

其他人指出,您不能从孩子那里更改父母的工作目录。

但是有一种方法可以实现您的目标-如果从shell函数中进行cd,则 可以 更改工作目录。将此添加到您的〜/ .bashrc中:

function go()
{
    cd $(python /path/to/cd.py "$1")
}

您的脚本应将路径打印到您要更改的目录。例如,这可能是您的cd.py:

#!/usr/bin/python
import sys
if sys.argv[1] == 'tdi': print '~/long/tedious/path/to/tdi'
elif sys.argv[1] == 'xyz':  print '~/long/tedious/path/to/xyz'

然后,您可以执行以下操作:

tdi @ bayes:/ home / $> go tdi
tdi @ bayes:/ home / tdi $> go tdi
2020-06-07