CLIアプリケーションの作成はどこから始めますか?[閉まっている]


8

Linuxを1〜2か月使用した後、私は今何をしているのかを知っています。

どのような言語を使用してプログラムを作成するときも、私は明らかに次のようなコードを使用しています。

$ python test.py

そして、もし私がtest.py与えられたファイルを読みたいなら、私は使用しなければなりません:

$ python test.py something.file

私が今したいことは、コマンドラインアプリケーションを作成して、使用できるようにすることです

$ myapp something.file

以下のようなプログラムpython$ python test.py、またはnano$ nano program.pl

しかし、いったいどこでこのようなアプリケーションを構築し始めるのでしょうか?少しWebをトロールするだけでは、どこにも行きません。

いいと思いますが、たくさんのリンクを受け入れます。

複数の方法がある場合、私は完全にオープンです。私は、どの言語(別の言語を学ぶための言い訳!)など何でもかまいません。


3
Unix Cプログラミングを学びたいpythonですか、それとも、パーツを指定せずにpythonスクリプトを実行できるようにしたいですか?
jw013 2012

@ jw013 Unix Cプログラミングを学びたい。(ただし、python。なしでpythonスクリプトを実行する方法を知りたいと思っていますが)
ACarter

4
あなたはおそらくあなたの質問を修正する必要があります:) CLIアプリケーションは、Unixコンパイラーまたはインタープリターを備えた任意の言語で作成できます。Unix Cプログラミングは、実際には2つの部分-Unixの部分とCの部分です。「Unix Cプログラミングを学ぶにはどうすればよいですか?」おそらく一般的すぎるために閉鎖され、おそらくこのサイト全体に重複があります。「Cプログラミングを学ぶにはどうすればよいですか」も一般的すぎ、トピックから外れる可能性もあります。それは確かにSOで閉じられるでしょう。
jw013 2012

@ jw013私が本当に求めているのは、「CLIアプリケーションは、Unixコンパイラーまたはインタープリターを備えた任意の言語で記述できる」のようなアドバイスです。
ACarter 2012

1
あ、そう。Unix環境に取り込もうとするとき、学習曲線には常に少し急な初期のこぶがありますが、それを乗り越えれば、努力はそれに見合うだけの価値があると確信するでしょう。残念ながら、私が始めるために指し示すことができる1つのリソースを知りません-基本的に、あなたはあなたが行くときに少しずつ拾う必要があります:\旅の最高の幸運:)
jw013

回答:


15

Pythonスクリプトを実行可能にするには(chmod +x test.py#!/usr/bin/env python、最初の行を作成します。これを実行test.py argsすると、を実行するとpythonが呼び出され、スクリプトが実行されます。詳細については、shebangについてお読みください。


それは私にはうまくいきませんでした。$ test.py 30bashエラーが発生しました:-bash: test.py: command not found。これまでのところ、あなたの助けをありがとう!
ACarter 2012

8
@ACarterそれはあなたの中にないから$PATHです。どちらかのように、パスを使用する/path/to/test.pyか、./test.pyあなたがしている場合は/path/to、すでに、または追加/path/toあなたへ$PATH。後者について、このサイトには多くの重複した質問があります。
jw013

に何かを入れたらすぐに、の$PATHようなファイル末尾を省略します.py
Reactormonk 2012

#!/usr/bin/env python.py拡張子を削除する前に、スクリプトの先頭にが必要です。ただし、この呼び出しまたは類似の呼び出し(#!/bin/shシェルスクリプトなど)を含むスクリプトには、拡張子なしで名前を付けることができます。それがPATHにあるかどうかは関係ありません。
マイケルハンプトン

2
明確にするために、Windowsとは異なり、UNIXの世界では拡張機能は重要ではありません。拡張機能が好き.EXE.COM重要な場所。ただし、拡張機能を削除する根拠は、汎用実行可能ファイルは汎用実行可能ファイルでなければならないということです。このトートロジーの意味は、ユーザーが機能を必要としているだけであり、PerlかPythonか、shかbashかawkかなど、気にする必要がないことです。これは、ほとんど無関係な実装の詳細です。また、スクリプトを実行可能にしてシバンを追加すると、スクリプトが汎用の実行可能になります。
jw013

2

Cでは、次のようになります。

int main(int argc, char *argv[]) {

argcは引数の数です。プログラム/ツール名が重要であることに注意してください。

引数自体は、引数ベクトル(または配列)argvになります。

次に、意図した方法でコードを処理するためのコードを書く際の注意が必要な部分があります。

次に、gccでコンパイルします。プログラムの名前は-o(outfile)フラグで指定します。次のように、現在のディレクトリからファイルを実行します./tool_name input_file_1 ... input_file_n(またはecho $PATH、書き込み時に表示されるディレクトリに配置すると、どこからでも、つまりドットなしで呼び出すことができます)。


1

私はGoを使用します。これは、動的言語のプログラミングが容易なクロスプラットフォームのコンパイル済み言語であり、並行性と通信のサポートです。

Goで開発するのはとても面白いので、Pythonには戻りません。

http://golang.org/
https://github.com/languages/Go

ここに、そのコマンドで使用される引数を取得する単純なプログラムがあります。

package main

import (
  "fmt"
  "flag"
)

func main() {
  fmt.Println("Arguments: ", flag.Args())
}

http://play.golang.org/p/1dpUT11-cc


Goは一部の対象を絞ったユースケースに最適です。ただし、一般的なユーティリティでGoとPythonを比較することは、ハンティングナイフ(Go)とスイスアーミーナイフ(Python)を比較するようなものです
Mike Pennington

1
Goは、Youtube、Webアプリケーション、またはゲームのビルドに使用されている汎用言語です(ゲームは終了しており、開発中のものもあります)。さらに、CLIアプリケーションで使用されます。
Marc

5
彼は実行可能プログラムを作成する方法を知りたいだけです。私たちは本当に言語戦争で取得する必要はありません
マイケルMrozek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.