如何用 Python 替换 bash?

use*_*r89 13 shell python

根据这个问题的公认答案: , Python can make a great bash replacement

那么我的问题是:我如何进行无缝切换?我认为进行这种切换的主要事情是:在启动虚拟终端时,调用一些 Python shell(尽管如此?),而不是像 Bourne shell 这样的东西。

那有意义吗?如果是的话,我该怎么做呢?这个常见 shell 的维基百科比较没有列出单个 Python shell:命令 shell 的比较

Gil*_*il' 17

该线程及其接受的答案特别是关于将 Python 用于 shell脚本,而不是作为交互式shell。

要使用不同的语言编写脚本,请在脚本的顶部放置 eg#!/usr/bin/env python而不是#!/bin/bash

如果您想尝试不同的交互式 shell,只需运行它,例如ipython在您现有的 shell 提示符下键入。如果您决定采用该 shell,请SHELL在会话开始时设置环境变量(~/.profile在大多数环境中,或在 中~/.pam_environment),例如export SHELL=/usr/bin/ipython( .profilesyntax) 或SHELL="/usr/bin/ipython"( .pam_environmentsyntax)。

在我看来,我见过的基于 Perl 或 Python 等高级语言的 shell 都不足以进行交互使用。它们对于常见任务来说过于冗长,尤其是 shell 启动应用程序的常见工作。4年前写过一个类似的话题;我认为从那时起情况并没有从根本上改善。


Ian*_*ery 17

我知道这个问题现在已经很老了,但是有一个基于 Python 3 超集 xonsh 的新 shell,它可能正是您要找的。

从网站:

Xonsh 是一种 Python 风格、BASH 风格的 shell 语言和命令提示符。该语言是 Python 3.4+ 的超集,带有您习惯于从 Bash 和 IPython 使用的其他 shell 原语。它适用于所有主要系统,包括 Linux、Mac OSX 和 Windows。Xonsh 适用于专家和新手的日常使用。

在 xon.sh 上查看