2020-12-09 17:34:52 +00:00
R""(
2024-04-29 13:39:10 +00:00
**Note:** this command's interface is based heavily around [*installables* ](./nix.md#installables ), which you may want to read about first (`nix --help`).
2020-12-09 17:34:52 +00:00
# Examples
* Evaluate a Nix expression given on the command line:
```console
# nix eval --expr '1 + 2'
```
2024-03-22 03:48:34 +00:00
* Evaluate a Nix expression to JSON using the short-form expression flag:
2020-12-09 17:34:52 +00:00
```console
2024-03-22 03:48:34 +00:00
# nix eval --json -E '{ x = 1; }'
2020-12-09 17:34:52 +00:00
{"x":1}
```
* Evaluate a Nix expression from a file:
```console
2023-04-30 13:55:08 +00:00
# nix eval --file ./my-nixpkgs hello.name
2020-12-09 17:34:52 +00:00
```
* Get the current version of the `nixpkgs` flake:
```console
# nix eval --raw nixpkgs#lib.version
```
* Print the store path of the Hello package:
```console
# nix eval --raw nixpkgs#hello
```
* Get a list of checks in the `nix` flake:
```console
# 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
2022-12-01 00:57:02 +00:00
This command evaluates the given Nix expression and prints the
2020-12-09 17:34:52 +00:00
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.
)""