当前位置: 首页 > 面试题库 >

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

秦权
2023-03-14
问题内容

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

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

例:

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

问题答案:

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

但是有一种方法可以实现您的目标-如果从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


 类似资料:
  • 问题内容: 是用于更改工作目录的shell命令。 如何在Python中更改当前的工作目录? 问题答案: 你可以使用以下命令更改工作目录: 使用此方法时,有两个最佳实践: 在无效路径上捕获异常(WindowsError,OSError)。如果抛出异常,请不要执行任何递归操作,尤其是破坏性操作。它们将沿旧路径而不是新路径运行。 完成后,返回到旧目录。可以通过将chdir调用包装在上下文管理器中以异常安

  • 问题内容: 我的目标是编写一个类似于Linux的基本Shell的C程序。除了更改工作目录外,我一切正常。我已经尝试了for输入字符串,但没有任何反应。我也尝试过,也没有运气。谁有想法?这是我的代码的一部分: 是否有可能做到这一点?还是这是与子外壳无法执行某些操作有关的简单情况? 编辑:上面的代码已完成。 问题答案: 将结尾字符留在中。 如果您键入,您会打电话而不是。

  • 问题内容: 我想用Go 实现命令: 但是当我在shell中运行时,它仍然不会切换到我的主目录。 那么如何通过运行go文件在shell中更改我的工作目录? 问题答案: 你做不到 每个子进程都有从父进程继承的自己的工作目录。在这种情况下,您将从其父级(您的shell)获取其工作目录。子进程无法更改父进程的目录或任何其他状态。 这是基本的过程分离。允许子进程影响其父进程将遇到各种安全性和可用性问题。 外

  • 我正在尝试制作两个程序。我希望一个打印我居住的城市的当前天气,我希望另一个从一个在线帐户获取数据并返回它。对于这些脚本,我导入了天气模块和请求模块。当我在shell中导入它们时,没有问题,但是当我运行脚本时,它说“ImportError:No module name you weather”。我做错了什么? 壳牌: 脚本: 这也适用于“天气”模块 谢谢你

  • 问题内容: 我有个问题。我正在编写一个软件,该软件需要执行要求用户处于sudo模式的操作。运行’sudo python filename.py’不是一个选项,这使我想到了我的问题。有没有一种方法可以在python脚本中途更改为sudo,安全性不是问题,因为用户将知道程序应以以下方式运行以说明问题的sudo密码 以普通用户身份运行的程序 ......执行操作 用户输入sudo密码 用户更改为sudo

  • 问题内容: 我想在特定文件或目录更改时运行Shell脚本。 我如何轻松做到这一点? 问题答案: 使用inotify-tools。