検索
ホームページウェブフロントエンドhtmlチュートリアルgo_html/css_WEB-ITnose を使用してコマンド ライン プログラムを構築する簡単な方法

要約

この記事では、コマンド ライン プログラムを構築するためのオープン ソース ツール mkideal/cli を紹介します。 golang 標準ライブラリ flag は、コマンドラインパラメータ解析用に公式に組み込まれた実用的なライブラリです。この記事で紹介する cli の主な機能は基本的に flag ライブラリと同じですが、比較的シンプルでわかりやすい使い方と、より実用的なツールを提供します。 。 cli の主な機能には以下が含まれます:

  • Golang ベースのタグとリフレクションの実装。
  • パラメータのタイプと範囲のチェック、およびカスタム検証関数。
  • -h や --help などの短い形式と長い形式のフラグをサポートします。
  • 環境変数をデフォルト値として使用する場合でも、デフォルト値の指定をサポートします。
  • パラメータとして配列とマップをサポートします。
  • フレンドリーなヘルプ表示。
  • ……

cli は github 上のオープンソースですhttps://github.com/mkideal/cli

はじめに

コマンドラインプログラムには豪華なインターフェイスはありませんが、サーバー側では、コマンドライン プログラムは利用できません。 不可欠ですが、多くの場合、グラフィカル インターフェイスよりも使いやすいです。コマンド ライン プログラムは Unix/Linux オペレーティング システムで非常に一般的であり、多数のプログラムがシステムにプリインストールされています。 cli ツールは、このようなコマンド ライン プログラムを簡単に構築するために使用される go 言語ライブラリです。 まず簡単な例を見てみましょう:

package mainimport (	"github.com/mkideal/cli")type argT struct {	cli.Helper}func main() {	cli.Run(&argT{}, func(ctx *cli.Context) error {		argv := ctx.Argv().(*argT)		if argv.Help {			ctx.WriteUsage()		} else {			ctx.String("hello\n")		}		return nil	})}

このコードをコンパイルして実行します

$ go build -o app$ ./apphello$ ./app -hOptions:  -h, --help     display help

もちろん、このコードには実際の関数はありません。コードの 12 行目は、cli の Run 関数を呼び出します。関数のプロトタイプは次のとおりです:

func Run(argv interface{}, fn func(*Context) error, descs ...string)

パラメータ argv には、実行中にコマンド ライン パラメータを解析することによって値が割り当てられ、最後に Context オブジェクトに挿入されます。コールバック関数 fn に渡されます。コールバック関数の ctx.Argv() を通じて argv を取得します。

このサンプルコードの argT は cli.Helper から継承されており、その定義は次のとおりです:

type Helper struct { Help bool `cli:"!h,help" usage:"display help"`}

さて、より詳細に説明するために、より実用的なプログラムを作成しましょう。

単純な http サーバー

package mainimport (	"fmt"	"net/http"	"github.com/mkideal/cli")type argT struct {	cli.Helper	Host string `cli:"H,host" usage:"specify host" dft:"0.0.0.0"`	Port uint16 `cli:"p,port" usage:"specify port" dft:"8080"`	Dir  string `cli:"d,dir" usage:"static files directory" dft:"./"`}func main() {	cli.SetUsageStyle(cli.ManualStyle)	cli.Run(new(argT), func(ctx *cli.Context) error {		argv := ctx.Argv().(*argT)		if argv.Help {			ctx.WriteUsage()			return nil		}		http.Handle("/", http.FileServer(http.Dir(argv.Dir)))		addr := fmt.Sprintf("%s:%d", argv.Host, argv.Port)		ctx.String("listening on %s\n", addr)		http.ListenAndServe(addr, nil)		return nil	})}

この例では、パラメーター オブジェクト argT にさらにいくつかの便利なフィールドがあります: Host Port Dir

まずコンパイルして実行しましょう

$ go build -o httpd$ ./httpd -h

さて、を作成するhtml ディレクトリに移動し、その内容を含む新しいファイルindex.html を作成します

<h1 id="Hello-this-is-my-http-server">Hello, this is my http server!</h1>

次に、http サーバーを起動します

$ mkdir html$ echo "<h1 id="Hello-this-is-my-http-server">Hello, this is my http server!</h1>" > html/index.html$ ./httpd -d htmllistening on 0.0.0.0:8080

次に、ブラウザから 127.0.0.1:8080 にアクセスすると、

が表示されます。デフォルトのポート 8080 の代わりに他のポートを指定できます。たとえば、指定されたポートが 3000 の場合、

$ ./httpd -d html --port=3000

または

$ ./httpd -d html --port 3000

または

$ ./httpd -d html -p=3000

または

りー

次にそれについて話しましょう パラメータ定義に表示され、パラメータを解析してヘルパーを表示するための鍵となるラベルです。

タグ cli、使用法、dft

cli は 4 つのタグをサポートします

cli - パラメーター フラグ名 (例では cli:"h,help" cli:"H,host" など)
  • uses - パラメーターの使用法の説明 、ヘルプに表示されるテキストです
  • dft - パラメータのデフォルト値を指定します。次の dft: "$HOME" のように環境変数をデフォルト値として指定できます
  • name - パラメータの参照名、実際の機能はありません
  • 作成 コマンド ライン プログラム用のコマンド ライン ツール clier goplus

clier は、

mkideal/cli

にあるコマンド ライン プログラムで、これも cli を使用して構築されます。 clier は、次のようなコマンドを作成するために使用されます。

$ ./httpd -d html -p 3000

goplus

新しいサブコマンドは、完全な cli ベースのコマンド ライン プログラムを構築できます。使用例

$ clier hello$ clier -s "this is hello command's description" hello

この記事は cli の簡単な紹介です。 cli については以下の記事で詳しく紹介しています

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLコードをどのように検証できますか?HTMLコードをどのように検証できますか?Apr 24, 2025 am 12:04 AM

HTMLコードは、オンラインバリデーター、統合ツール、自動化されたプロセスを使用するとクリーンになります。 1)w3cmarkupvalidationserviceを使用して、HTMLコードをオンラインで確認します。 2)リアルタイム検証のためにVisualStudiocodeにhtmlhint拡張機能をインストールして構成します。 3)HTMLTIDYを使用して、建設プロセスでHTMLファイルを自動的に検証およびクリーニングします。

HTML対CSSおよびJavaScript:Webテクノロジーの比較HTML対CSSおよびJavaScript:Webテクノロジーの比較Apr 23, 2025 am 12:05 AM

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

マークアップ言語としてのHTML:その機能と目的マークアップ言語としてのHTML:その機能と目的Apr 22, 2025 am 12:02 AM

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTML、CSS、およびJavaScriptの未来:Web開発動向HTML、CSS、およびJavaScriptの未来:Web開発動向Apr 19, 2025 am 12:02 AM

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境