タグ付けされた質問 「scripting」

スクリプティングは、一般に形式性が低く、タイプが緩く、明示的なコンパイルが不要であることを特徴とするプログラミング形式です。多数のスクリプト言語があり、これらはコマンドラインアプリケーション、GUI、サーバー側アプリケーション、拡張モジュールなど、さまざまなシナリオで使用されます。

10
繰り返しながら辞書から項目を削除する方法は?
繰り返しながらPythonの辞書から項目を削除することは正当ですか? 例えば: for k, v in mydict.iteritems(): if k == val: del mydict[k] アイデアは、繰り返される辞書のサブセットである新しい辞書を作成する代わりに、特定の条件を満たさない要素を辞書から削除することです。 これは良い解決策ですか?よりエレガントで効率的な方法はありますか?

10
ディレクトリ内のすべてのファイルに対してコマンドを実行します
誰かが次のことを行うためのコードを提供してくれませんか?ファイルのディレクトリがあり、そのすべてをプログラムで実行する必要があるとします。プログラムは結果を標準出力に出力します。ディレクトリに移動し、各ファイルでコマンドを実行し、出力を1つの大きな出力ファイルに連結するスクリプトが必要です。 たとえば、1つのファイルに対してコマンドを実行するには: $ cmd [option] [filename] > results.out
290 bash  scripting 



11
特定のディレクトリに直接sshするにはどうすればよいですか?
多くの場合、いくつかのサーバーの1つにログインし、それらのマシンのいくつかのディレクトリの1つに移動する必要があります。現在、私はこの種のことをしています: localhost〜] $ ssh somehost somehostへようこそ! somehost〜] $ cd / some / directory / somewhere / named / Foo somehost Foo] $ どのホストとどのディレクトリにアクセスする必要があるかを判別できるスクリプトがありますが、これを行う方法がわかりません。 localhost〜] $ go_to_dir Foo somehostへようこそ! somehost Foo] $ これを行うための簡単で賢い方法はありますか?
248 bash  shell  scripting  ssh 


14
bashから「グループ化」をシミュレートする最良の方法は?
IPアドレスを含むファイルがあり、各行に1つのアドレスがあるとします。 10.0.10.1 10.0.10.1 10.0.10.3 10.0.10.2 10.0.10.1 各IPアドレスがファイルに出現する回数をカウントするシェルスクリプトが必要です。上記の入力には、次の出力が必要です。 10.0.10.1 3 10.0.10.2 1 10.0.10.3 1 これを行う1つの方法は次のとおりです。 cat ip_addresses |uniq |while read ip do echo -n $ip" " grep -c $ip ip_addresses done しかし、それは実際には効率的ではありません。 どのようにbashを使用してこの問題をより効率的に解決しますか? (1つ追加する必要があります。私はそれがperlまたはawkから解決できることを知っています。これらの言語ではなく、bashのより良いソリューションに興味があります。) 追加情報: ソースファイルが5GBで、アルゴリズムを実行しているマシンが4GBであるとします。したがって、並べ替えは効率的なソリューションではなく、ファイルを複数回読み取ることもありません。 私はハッシュテーブルのようなソリューションが好きでした-誰でもそのソリューションに改善を提供できますか? 追加情報#2: たとえばperlのほうがずっと簡単なのに、なぜbashを使うのが面倒なのかと尋ねる人もいました。その理由は、私がこのperlを実行しなければならなかったマシンでは、私は利用できなかったからです。これは、私が慣れているほとんどのツールを持たないカスタムビルドのLinuxマシンでした。そして、それは興味深い問題だったと思います。 だから、質問のせいにせず、気に入らなければ無視してください。:-)
231 bash  scripting 

8
プロセスが停止した場合にプロセスを再起動するbashスクリプトを作成するにはどうすればよいですか?
キューをチェックして各アイテムに対してアクションを実行するPythonスクリプトがあります。 # checkqueue.py while True: check_queue() do_something() 実行されているかどうかを確認し、実行されていない場合は起動するbashスクリプトを作成するにはどうすればよいですか。おおよそ次の疑似コード(またはおそらくそれは何かのようなことをする必要がありps | grepます): # keepalivescript.sh if processidfile exists: if processid is running: exit, all ok run checkqueue.py write processid to processidfile これをcrontabから呼び出します。 # crontab */5 * * * * /path/to/keepalivescript.sh
226 bash  scripting  cron 

3
bashスクリプト:引数がこの文字列と等しい場合、この文字列のような変数を定義します
私はbashスクリプトを実行していて、次のようにsource1 つの変数呼び出しと1つの配列を取得していますsamples。 source='country' samples=(US Canada Mexico...) ソースの数を増やしたいので(各ソースには独自のサンプルがあります)、これを行うためにいくつかの引数を追加しようとしました。私はこれを試しました: source="" samples=("") if [ $1="country" ]; then source="country" samples="US Canada Mexico..." else echo "try again" fi しかし、スクリプトを実行したときに機能source countries.sh countryしませんでした。何が悪いのですか?

12
Python再帰フォルダー読み取り
私はC ++ / Obj-Cのバックグラウンドを持っており、Pythonを発見しているだけです(1時間ほど書いています)。フォルダー構造内のテキストファイルの内容を再帰的に読み取るスクリプトを作成しています。 私が持っている問題は、私が書いたコードが1つのフォルダーの深さでしか機能しないことです。コード(を参照#hardcoded path)で理由を確認できますが、Pythonでの経験はまったく新しいものなので、Pythonをどのように進めることができるのかわかりません。 Pythonコード: import os import sys rootdir = sys.argv[1] for root, subFolders, files in os.walk(rootdir): for folder in subFolders: outfileName = rootdir + "/" + folder + "/py-outfile.txt" # hardcoded path folderOut = open( outfileName, 'w' ) print "outfileName is " + outfileName for file …

19
シェルスクリプトのシンボリックリンクを解決する方法
(Unixライクなシステムでの)絶対パスまたは相対パスが与えられた場合、中間シンボリックリンクを解決した後、ターゲットの完全パスを特定したいと思います。〜username表記も同時に解決することのボーナスポイント。 ターゲットがディレクトリの場合、ディレクトリにchdir()してからgetcwd()を呼び出すことは可能ですが、Cヘルパーを作成するのではなく、シェルスクリプトからこれを実行したいのです。残念ながら、シェルはユーザーからシンボリックリンクの存在を隠そうとする傾向があります(これはOS Xのbashです): $ ls -ld foo bar drwxr-xr-x 2 greg greg 68 Aug 11 22:36 bar lrwxr-xr-x 1 greg greg 3 Aug 11 22:36 foo -> bar $ cd foo $ pwd /Users/greg/tmp/foo $ 上記の例のtmpディレクトリから実行するとresolve( "foo")== "/ Users / greg / tmp / bar"になるようなresolve()関数が必要です。
220 bash  shell  scripting  symlink 

14
コマンドラインツールを使用してMac OS X用の見栄えの良いDMGを作成するにはどうすればよいですか?
Macアプリケーション用の素敵なインストーラーを作成する必要があります。事前定義されたサイズ、レイアウト、背景画像を備えたディスクイメージ(DMG)にしたい。 これをプログラムでスクリプトで実行し、既存のビルドシステムに統合する必要があります(インストーラーのみを作成するため、実際にはパックシステムのようです。ビルドは個別に行われます)。 私はすでに「hdiutil」を使用してDMGの作成を行っていますが、アイコンのレイアウトを作成して背景のビットマップを指定する方法はまだわかりません。

4
文字列から任意のネイティブコマンドをどのように実行しますか?
次のシナリオで必要性を表現できます。ネイティブコマンドとして実行される文字列を受け入れる関数を記述します。 それは、アイデアからそれほど遠くはなれていません。逐語的に実行するコマンドを提供する社内の他の場所からの他のコマンドラインユーティリティとインターフェイスしている場合。コマンドを制御しないため、有効なコマンドを入力として受け入れる必要があります。これらは私が簡単に克服することができなかった主なしゃっくりです: コマンドは、スペースを含むパスにあるプログラムを実行する可能性があります。 $command = '"C:\Program Files\TheProg\Runit.exe" Hello'; コマンドには、スペースを含むパラメーターを含めることができます。 $command = 'echo "hello world!"'; コマンドにはシングルとダブルの両方のティックがあります: $command = "echo `"it`'s`""; これを達成するためのクリーンな方法はありますか?私は贅沢で醜い回避策を考案することしかできませんでしたが、スクリプト言語の場合、これは非常に単純なはずだと感じています。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.