Dar*_*rek 12 python linux bash shell
我想实现一个userland命令,它将获取其一个参数(路径)并将目录更改为该目录.程序完成后,我希望shell在该目录中.所以我想实现cd命令,但是使用外部程序.
它可以在python脚本中完成,还是我必须编写bash包装器?
例:
tdi@bayes:/home/$>python cd.py tdi
tdi@bayes:/home/tdi$>
Run Code Online (Sandbox Code Playgroud)
bst*_*rre 15
其他人指出,您无法从子级更改父级的工作目录.
但有一种方法可以实现你的目标 - 如果你从shell函数cd,它可以改变工作目录.将其添加到〜/ .bashrc中:
function go()
{
cd $(python /path/to/cd.py "$1")
}
Run Code Online (Sandbox Code Playgroud)
您的脚本应该打印要更改为的目录的路径.例如,这可能是你的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'
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
tdi@bayes:/home/$> go tdi tdi@bayes:/home/tdi$> go tdi