Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
eval

R""(

Note: this command's interface is based heavily around installables, which you may want to read about first (nix --help).

Examples

  • Evaluate a Nix expression given on the command line:

    # nix eval --expr '1 + 2'
  • Evaluate a Nix expression to JSON using the short-form expression flag:

    # nix eval --json -E '{ x = 1; }'
    {"x":1}
  • Evaluate a Nix expression from a file:

    # nix eval --file ./my-nixpkgs hello.name
  • Get the current version of the nixpkgs flake:

    # nix eval --raw nixpkgs#lib.version
  • Print the store path of the Hello package:

    # nix eval --raw nixpkgs#hello
  • Get a list of checks in the nix flake:

    # nix eval nix#checks.x86_64-linux --apply builtins.attrNames
  • Generate a directory with the specified contents:

    ```console

nix eval –write-to ./out –expr '{ foo = "bar"; subdir.bla = "123"; }'

cat ./out/foo

bar

cat ./out/subdir/bla

123

Description

This command evaluates the given Nix expression and prints the result on standard output.

Output format

nix eval can produce output in several formats:

  • By default, the evaluation result is printed as a Nix expression.
  • With --json, the evaluation result is printed in JSON format. Note that this fails if the result contains values that are not representable as JSON, such as functions.
  • With --raw, the evaluation result must be a string, which is printed verbatim, without any quoting.
  • With --write-to path, the evaluation result must be a string or a nested attribute set whose leaf values are strings. These strings are written to files named path/*attrpath*. path must not already exist.

)""