• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

用Python脚本包装所有在Bash-Shell中输入的命令

python 来源:ifischer 3次浏览

我想要的是一种机制,我在Bash-Terminal上输入的所有命令都由Python脚本包装。 Python脚本执行输入的命令,但它增加了一些额外的魔术(例如设置“动态”环境变量)。 这是可能的吗?用Python脚本包装所有在Bash-Shell中输入的命令

我正在运行Ubuntu和Debian Squeezy。

附加说明:

我有一个属性,文件,该文件是动态变化的(某些脚本不改变它在任何时候)。我需要该文件中的属性作为所有shell脚本中的环境变量。当然,我可以从shell中以某种方式解析属性文件,但我更喜欢使用面向对象的风格(尤其是写作),因为它可以通过Python(和ConfigObject)完成。

因此,我想用该Python脚本包裹所有脚本(无需修改脚本本身),该脚本将这些属性处理为所有Shell脚本。 这是我目前的用例,但我可以想象,我会发现其他情况下,我可以在以后扩展我的包装。


===========解决方案如下:

将每一个键入到Bash Shell中的命令是在.bashrc中更改变量PROMPT_COMMAND。例如,如果我想每一个命令前做一些Python的东西,尤其爱吃问我的问题:

的.bashrc:

# ... 
PROMPT_COMMAND="python mycoolscript.py; $PROMPT_COMMAND;" 
export $PROMPT_COMMAND 
# ... 

现在每前指挥mycoolscript.py脚本运行。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)