この質問に対する回答によると、Pythonはbashを置き換えるのに最適な方法です。。
だから私の質問は:どのようにシームレスな移行を行うことができますか?私の考えにそのような移行をするために必要な最も重要なことは、仮想ターミナルを起動するときにBourneシェルのようなものの代わりにPythonシェルを呼び出すことです(しかしどうですか?)。
馬になる?では、どうすればよいですか? Wikipediaの一般的なシェル比較では、単一のPythonシェルはリストされていません。コマンドシェルの比較
答え1
今はこの質問が古くなっていることを知っていますが、あなたが探しているxonshというPython 3の親セットに基づく新しいシェルがあります。
ウェブサイトから:
Xonshは、PythonやBASHwardsに似たシェル言語であり、コマンドプロンプトです。この言語はPython 3.4+の親セットであり、BashとIPythonでの使用に慣れている追加のシェル基本要素が含まれています。 Linux、Mac OSX、Windowsを含むすべての主要なシステムで動作します。 Xonshは、専門家と初心者の両方が日常的に使用するのに適しています。
答え2
このスレッドと許容される答えは、特にPythonをシェルとして使用することに関するものです。スクリプト、何もしないでくださいインタラクティブシェル。
別の言語でスクリプトを作成するには、代わりにスクリプトの上にを置きます#!/usr/bin/env python
。#!/bin/bash
別の対話型シェルを使用するには、たとえば既存のipython
シェルプロンプトに入力して実行します。そのシェルを採用することにした場合は、SHELL
セッションの開始時に(構文)や(構文)などの環境変数(~/.profile
またはほとんどの環境で)を設定します。~/.pam_environment
export SHELL=/usr/bin/ipython
.profile
SHELL="/usr/bin/ipython"
.pam_environment
私の意見では、PerlやPythonなどの高級言語に基づくシェルのどれもインタラクティブな使用には適していません。一般的なタスク、特にアプリケーションのシェルを起動する一般的なタスクには冗長すぎます。私4年前にも同様のトピックを書いています。;それ以来、状況は根本的に改善されていないと思います。
答え3
代わりに
その理由は、Pythonが昇格された権限処理をサポートしていないためです。最悪のシナリオは、システムファイルを編集することです。
比較する
sudo sed -i -e "/\#LXC_DOMAIN/ s/\#//" /etc/default/lxc-net
そして:
out = subprocess.run('''sudo sed -i -e "/\#LXC_DOMAIN/ s/\#//" /etc/default/lxc-net''', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,env={"PATH": "/usr/bin"})
Pythonは本質的に昇格された権限でサブコマンドを実行できないため、システムファイルにPythonのデフォルトのファイル処理を使用することはできません。
答え4
Python大丈夫です。また、「os」ライブラリを見てください。