Nushell
Book
Cookbook
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
Book
Cookbook
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • はじめに
  • Getting Started
    • Nu のインストール
    • Default Shell
    • クイックツアー
    • システム内の移動
    • Thinking in Nu
    • Nushell Cheat Sheet
  • Nu 基礎編
    • データ型
    • データの読み込み
    • パイプライン
    • Working with Strings
    • Working with Lists
    • テーブルを扱う
  • Programming in Nu
    • Custom Commands
    • エイリアス
    • Operators
    • /book/variables_and_subexpressions.html
    • Scripts
    • Modules
    • Overlays
    • /book/command_signature.html
    • Testing your Nushell Code
    • Best Practices
  • シェルとしての Nu
    • 設定
    • 環境変数
    • Stdout, Stderr, and Exit Codes
    • エスケープ
    • How to Configure 3rd Party Prompts
    • シェルの中のシェル
    • Reedline, Nu's Line Editor
    • Externs
    • Custom Completions
    • Coloring and Theming in Nu
    • Hooks
    • /book/background_task.html
  • Nu への移行
    • Bash から来た人向け
    • Coming from CMD.EXE
    • 他のシェルと DSL から Nu への対応表
    • 命令形言語から Nu への対応表
    • 関数型言語から Nu への対応表
    • Nushell 演算子対応表
  • Design Notes
    • How Nushell Code Gets Run
  • (Not So) Advanced
    • Standard Library (Preview)
    • Dataframes
    • メタデータ
    • Creating Your Own Errors
    • Parallelism
    • プラグイン
    • explore

パイプライン

Nu のコアデザインのひとつがパイプラインです。パイプラインは Unix の背後にある哲学にまでそのルーツを遡ることができるデザインアイデアです。Nu は、Unix の文字列データを拡張したように、パイプラインの概念も拡張してテキスト以外のものも扱えるようにします。

基礎

パイプラインは、入力、フィルター、出力の3つの部分から構成されます。

> open "Cargo.toml" | inc package.version | save "Cargo_new.toml"

最初のコマンドopen "Cargo.toml"が入力です(しばしば"source"や"producer"と呼ばれます)。これによりデータが作成またはロードされパイプラインに送られます。パイプラインは入力から渡された値を扱います。lsのようなコマンドも入力です。ファイルシステムからデータを取得し、パイプラインを経由して扱えるようにするからです。

2番目のコマンドinc package.versionはフィルターです。フィルターは与えられたデータをうけとると大抵の場合はなにかします。それは変更(incコマンドの例のように)であったり、ロギングなどの別の操作かもしれません。

最後のコマンドsave "Cargo_new.toml"が出力です("sink"と呼ばれることもあります)。出力はパイプラインから入力を受け取り、最終的な操作を実行します。この例では、最終ステップとして、パイプラインを介しておくられてきたものをファイルに保存しています。他の出力コマンドとしては、値をうけとりユーザのために表示するものがあります。

外部コマンドの使用

Nu のコマンドは互いに Nu のデータ型(types of dataを参照してください)を利用してやりとりします。しかし、Nu 以外のコマンドはどうでしょうか。外部コマンドの使用例をみてみましょう。

internal_command | external_command

データは内部コマンドから外部コマンドにむかって流れます。このデータは文字列であることが期待されるので、外部コマンドのstdinに送られます。

external_command | internal_command

外部コマンドから Nu に送られるデータは単一の文字列にまとめられ、内部コマンドに渡されます。linesのようなコマンドは外部からのデータを取り込む際に便利です。

external_command_1 | external_command_2

Nu は Bash のような他のシェルと同じように2つの外部コマンドでパイプされるデータを処理します。外部コマンド1のstdoutは外部コマンド2のstdinにつながれます。これにより2つのコマンドの間でデータは自然にやりとりされます。

内部の仕組み

lsが出力ではなく入力の場合、テーブルがどのように表示されるのか疑問に思われるかもしれません。Nu はautoviewとよばれるコマンドを自動的に出力に加えます。autoviewコマンドは結果を確認できる出力をもたないパイプラインに追加されるのです。

実質的にこのコマンドと

ls

このパイプラインは

ls | autoview

同じものです。

GitHubでこのページを編集する
Contributors: Ibraheem Ahmed, ymgyt, Justin Ma, Jan Klass
Prev
データの読み込み
Next
Working with Strings