2009-06-30 6 views
4

繰り返し実行する必要があり、ファイルを移動したりテキストを追加したりするジョブには、まだbashスクリプトを実行する方法がありますか?私は現在、bashスキルが少ししかないのであれば、それをうまくやることを学ぶのに時間を費やすべきですか、あるいはPerlやPythonのようなものを使うべきですか?まだbashスクリプトは行っていますか?

答えて

15

:-)物事が非常に簡単に作る:)

私はPythonが提供する可能性があると言うだろうそれはかなり大きな仕事になる場合は、より保守的な解決策ですが、bashは小さなスクリプトでは問題ありません。私は100行に神経質になったり、たくさんの機能を必要とするようになったりします。 (もちろん、bashのエキスパートははるかに複雑なスクリプトを扱うことができますが、Javaは「カジュアル」なJavaコーダーによって読み込まれる可能性があるよりも、「カジュアル」なbashユーザーによって読み込まれる可能性が高くなります。 )

+2

+1、私は "カジュアル"ユーザーのポイントが好きです... – rmeador

+2

共通のbashコードのPythonバージョンについては、http://stackoverflow.com/questions/209470/can-i-use-python-as-a-bash-replacementを参照してください。 – Nickolay

0

Qt/C++を使用することもできます。 QRegExpとqfileによりそれがいつものコースのさまざまなスキルを持つ価値があるが、私はその時がしばしばきついです感謝

2

私はJon Skeetに同意します。私のリストの理解は常に欠けていますが、私のシェルにはネイティブではなく、10行以下のスクリプト(私のしきい値はSkeetsよりも低いですが、私の能力もそうです)、bashまたはネイティブシェル言語は、安全なルート。そして、私はipythonにネイティブシェルとして動くことを真剣に示唆する議論はしません;)

1

解決策がリスト、ハッシュ、またはその他の重要なデータ構造を含んでいれば、私はルビーのようなdl、 python、またはperlです。

一方、私が構築しているものが複数のプラットフォームで標準ツールセットを持たずに実行されるならば、私はbashやshでも同じことをするでしょう。それはすべて、ソリューションの複雑さと実行される場所に依存します。

1

私の経験上、知っているコマンドラインツールを使用してください。私はいくつかのPythonを知っていますが、私のスクリプトの約半分がPHPで書かれています。

1

私はbashがすべてのLinuxディストリビューションではないにしても、ほとんどの場合、デフォルトの/ bin/shであることを知っています。しかし、私はそれを一歩踏み出し、厳密なBourneシェルの構文に固執しようとします。そうすれば、あなたのスクリプトライブラリはUNIXの他の味方に容易に移植できます。これは、他の人が指摘しているように、配列やもののようなより高度な機能を必要としないことを前提としています。

いずれにしても、bashを学ぶためには、Advanced Bash-Scripting Guideを参考にすることをおすすめします。

2

私はbashとpythonの両方を使用します。同時に。 bashは短いスクリプト(特にzsh、私が移植性を気にしないときは私のお気に入り)に適していますが、Pythonはもっと長く複雑なスクリプトには適しています...しかし、埋め込み»bashスクリプトを使ったPythonはさらに優れています。 popenはあなたの友人です。例えば

、私は頻繁に書く:

for file in os.popen('find ...'): 
    ... 

の代わりに、手動でos.walkをやって、これは考えると、多くの場合、はるかに短いする方法高速であるため。パイプを使用すると、このテクニックはさらに優れています。

もちろん、移植性が問題になる可能性があるので注意してください。また、どの部分がどの言語で書かれているかを知るには、両方のツールをかなりよく知っておく必要があります。

関連する問題