# exec

> stackql exec コマンドは、出力形式、認証、プロバイダーレジストリのフラグを使って、1 つの StackQL 文または複数の文からなるスクリプトを実行します。

Source: https://stackql.io/ja/command-line-usage/exec

StackQL クエリを、単一の文として、または StackQL スクリプト（IQL ファイル）から文のバッチとして実行するためのコマンドです。  

* * * 

### 構文

`stackql exec [query] [flags]`

* * *

### 引数

| 引数 | 説明 | 例 |
|--|--|--|
|`query`|実行する StackQL クエリ または実行するコマンド | `"SELECT * FROM google.compute.instances` `WHERE project = 'myproject' AND zone = 'us-east1-a'"` _なお、クエリは単一引用符または二重引用符で囲む必要があります_ |    

### フラグ

| フラグ | 説明 |
|--|--|
|`-o` `--output`|出力モード。有効な値は `table`（デフォルト）、`json`、`jsonl`（改行区切りの JSON。`ndjson` もエイリアスとして受け付けます）、`csv`、`text`、`otel`（OpenTelemetry のログレコード。[出力モード](/getting-started/output-modes#otel-output)を参照）です。例：`--output jsonl` |
|`-i` `--infile`|必要に応じて、指定したファイルからクエリを実行します。指定した場合、引数として渡したクエリは無視されます。例：`--infile myquery.iql` |
|`-q` `--iqldata`|`json` または `jsonnet` ファイルを使用した、コマンドのソースデータ。例：`--iqldata vars.jsonnet`|
|`--dryrun`|ドライランフラグ。プリプロセッサーだけが実行され、その出力が返されます |
|`--var`|外部変数（環境変数またはシークレットを指定できます）。`--iqldata` フラグで指定した jsonnet ファイルによって読み込まれます。例：`--var region=${AWS_REGION}`|
|`-f` `--outfile`|必要に応じて結果を出力するファイル（デフォルトでは、結果はコンソールにのみ出力されます）。例：`--outfile myoutput.csv`|
|`-H` `--help`|ヘルプ情報を表示します|
|`-v` `--verbose`|詳細モードでクエリを実行し、追加の出力を stdout に送ります。`-f` オプションを選択した場合、この追加のログ情報はクエリ結果とともに出力ファイルに書き込まれます|

> そのほかのオプションについては、[グローバルフラグ](/command-line-usage/global-flags)を参照してください。

* * *

### 例

クエリ結果をテーブル形式でコンソールに出力します：
```shell
stackql exec "SHOW services IN google"
```

クエリ結果を JSON 形式でコンソールに出力します：
```shell
stackql exec "SHOW services IN google" -o json
```

クエリ結果を JSON 形式でファイルに出力します：
```shell
stackql exec "SHOW services IN google" -o json -f services.json
```

入力ファイル（IQL ファイル）からクエリを実行し、結果を JSON 形式でファイルに出力します：
```shell
stackql exec -i getservices.iql -o json -f services.json
```

* * *

### 終了ステータス

`exec` は、入力を処理し終えるとステータス `0` で終了します。個々の文のエラーはコンソールに書き込まれるため、スクリプトでは出力を確認する必要があります。`v1.0` 以降では、[`SET`](/language-spec/set) または [`UNSET`](/language-spec/unset) の設定文が失敗した場合、[アクセス管理](/command-line-usage/access-management)が有効で文が拒否された場合、またはプレビュー版の IaC 実行が失敗したリソースを報告した場合に、ステータス `1` で終了します。
