web-dev-qa-db-ja.com

Python BASHと比較

私は過去3週間ほどbashを研究してきましたが、基本的にはコマンドライン入力であるため、学ぶのは非常に簡単です。今はpythonに進むことにしましたが、それを学ぼうとしてずっと迷っていました。私の質問はpythonにありますが、すべて数字、リスト、変数などを中心に展開しているようです。一方、bashはコマンドの方がはるかに簡単です。 pythonには、ファイルを移動する方法、ディレクトリを変更する方法、またはそのような他の方法がある1つの例を見つけることができません。私はすでにPythonを学ぶためにbashに慣れすぎているように感じます。誰かがこれを私に説明してもらえますか。

6
LurkDog

Bashはプログラミング言語ではありませんが、コマンドをすばやく入力して実行することを目的としたシェルです。したがって、ジョブを実行する他のコマンドを実行します(例:mvはファイルとディレクトリを移動します)。 Bashの変数は制限されており、コマンドはすべて文字列であるため、それに厳密な理由はありません。 (型を強制することは可能ですが、help declareを参照してください)。

一方、Pythonはより多くの言語機能を備えたより広範なプログラミング言語です。他のプログラムを実行する代わりに、組み込み関数またはモジュール(他の言語のライブラリ)の他の機能を使用します。 Pythonの入出力に関する基本的なチュートリアルについては、 http://docs.python.org/tutorial/inputoutput.html を参照してください。 Pythonでプログラミングを開始する場合は、チュートリアル全体を読む価値があります。

6
Lekensteyn

Pythonはプログラム言語です。他のすべてのプログラミング言語と同様に、プロセスとデータを記述するように設計されています。ほとんどの質問は、osモジュール内のオペレーティングシステムへのAPIを扱っています。たとえば、os.chdir()およびos.rename()(UNIX mvコマンドの場合)です。

シェルは、さまざまなレベル(ファイル、プロセスなど)でオペレーティングシステムに簡単にアクセスできるようにするためのオペレーティング環境です。変数、ループ、条件などのプログラミング構成要素が含まれているため、この意味ではプログラミング言語ですが、進化するものとして設計されていません。シェルスクリプトを使用すると、非常にすばらしいことができます。かつて、1か月に60kのリクエストを処理するコールトラッキングシステムを書いたことがあります。しかし、コンピューター言語でより適切に処理できるという制限もあります。

たとえば、could BashでWebブラウザーを記述しますが、特にhtml、css、javascriptページを同時にダウンロードしてユーザー入力を処理しようとすると、非効率的です。スレッドにアクセスできるPythonのようなプログラミング言語は、これをより効率的に処理します。

Pythonにも「シェル」がありますが、オペレーティングシステムへのアクセスに使いやすいものではありません。しかし、それは使用可能です。たとえば、シェルコマンドmv * otherdirectoryはPythonで次のように記述されます。

import os, glob
for fname in glob.glob('*'):
    os.rename(fname, 'otherdirectory')

またはよりコンパクトに:

import os, glob
[os.rename(fname, 'otherdirectory') for fname in glob.glob('*')]

ほとんどの言語のチュートリアルでは、最初に言語を理解し、後でオペレーティングシステムとのインターフェイスを理解する必要があります。シェルの場合、最初にオペレーティングシステムとインターフェイスする方法を理解する必要があります。

3
Arcege