> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI で環境変数を管理する

> squarecloud app env で Square Cloud アプリケーションの環境変数を一覧表示、設定、削除、置換します。.env ファイルからの読み込みにも対応しています。

`squarecloud app env` は、アプリケーションの環境変数を管理します。アプリケーションでの読み取り方法については、[環境変数](/ja/platform/environment-variables)で説明しています。

`list` は引数としてアプリ ID を受け取ります。`set`、`remove`、`replace` は引数を変数に使うため、ID は `--app` で受け取ります。どちらも省略できます。[CLI がアプリを特定する仕組み](/ja/cli-reference/quickstart#cli-がアプリを特定する仕組み)を参照してください。

## `squarecloud app env list`

```bash 使い方 theme={"system"}
squarecloud app env list [appID] [--json]
```

各変数を名前順に `KEY=value` の形式で表示します。

```bash theme={"system"}
squarecloud app env list <appID> --json
# Prints the variables as a JSON object.
```

## `squarecloud app env set`

```bash 使い方 theme={"system"}
squarecloud app env set KEY=VALUE... [--from-file <path>] [--app <appID>]
```

| フラグ | 説明 |
| - | - |
| `--from-file <path>` | `.env` 形式のファイルから変数を読み込みます。`KEY=VALUE` 引数は、ファイル内の同じキーより優先されます。 |
| `--app <appID>` | 変更するアプリケーション。 |

1 つ以上の変数を設定し、ほかの変数はそのまま残します。

```bash theme={"system"}
squarecloud app env set NODE_ENV=production PORT=80
# Sets two variables on the app in the ID= line.
```

```bash theme={"system"}
squarecloud app env set --from-file .env --app <appID>
# Sets every variable of a .env file.
```

```bash 出力 theme={"system"}
✓ Environment variables set: 2
```

## `squarecloud app env remove`

```bash 使い方 theme={"system"}
squarecloud app env remove KEY... [--app <appID>]
squarecloud app env remove --all [--app <appID>] [-y]
```

**エイリアス:** `delete`、`unset`

| フラグ | 説明 |
| - | - |
| `--all` | 確認のうえ、アプリケーションのすべての変数を削除します。変数名と組み合わせることはできません。 |
| `-y`、`--yes` | `--all` の確認をスキップします。 |
| `--app <appID>` | 変更するアプリケーション。 |

```bash theme={"system"}
squarecloud app env remove API_KEY OLD_FLAG
# Removes two variables.
```

## `squarecloud app env replace`

```bash 使い方 theme={"system"}
squarecloud app env replace KEY=VALUE... [--from-file <path>] [--app <appID>] [-y]
```

| フラグ | 説明 |
| - | - |
| `--from-file <path>` | `.env` 形式のファイルから変数を読み込みます。 |
| `-y`、`--yes` | 確認プロンプトをスキップします。 |
| `--app <appID>` | 変更するアプリケーション。 |

変数の**セット全体**を、渡した変数で置き換えます。指定しなかった変数は削除されます。実行前に `y/N` の確認があり、少なくとも 1 つの変数が必要です。すべての変数を削除するには `remove --all` を使います。

```bash theme={"system"}
squarecloud app env replace --from-file .env --app <appID> -y
# Makes the app's variables exactly the ones in .env, without asking.
```

## スペースや特殊文字を含む値

アプリケーションは変数をシェル経由で読み込みます。入力したとおりの値をアプリケーションが受け取れるよう、CLI はスペースや `$`、`&`、`;`、`#` などの文字を含む値を引用符で囲みます。そのため `env list` では、保存された値がその引用符付きで表示されます。

```bash theme={"system"}
squarecloud app env set 'GREETING=hello world'
# The application reads: hello world
```

1 組の引用符で囲んだ値は書いたとおりに送信されるため、アプリケーションのシェルで展開できます。ほかの変数から値を組み立てるときに使います。

```bash theme={"system"}
squarecloud app env set 'API_URL="${HOST}:3000"'
# The application reads the value of HOST followed by :3000.
```

## `--from-file` の形式

* 1 行に 1 つの `KEY=VALUE`。空行、`#` で始まる行、`=` を含まない行はスキップされます。
* `export ` の接頭辞を付けられます。ファイル先頭の UTF-8 BOM は無視されます。
* 対になった引用符で囲まれた値は、引用符の内側がそのまま使われます。
* 引用符で囲まれていない値では、` #` 以降はコメントになります。`A=foo #bar` は `foo` を設定します。` #` を含む値は引用符で囲んでください。
* エスケープシーケンスや、複数行にわたる値には対応していません。

## 関連項目

| コマンド | API | JavaScript SDK | VS Code |
| - | - | - | - |
| `list` | [`GET .../envs`](/ja/api-reference/endpoint/apps/envs/get) | [`api.apps.envs.get()`](/ja/sdks/js/environment_variables) | [環境変数](/ja/vscode-extension/features#アプリケーション) |
| `set` | [`POST .../envs`](/ja/api-reference/endpoint/apps/envs/add_n_edit) | [`api.apps.envs.set()`](/ja/sdks/js/environment_variables) | [環境変数](/ja/vscode-extension/features#アプリケーション) |
| `remove` | [`DELETE .../envs`](/ja/api-reference/endpoint/apps/envs/remove) | [`api.apps.envs.delete()`](/ja/sdks/js/environment_variables) | [環境変数](/ja/vscode-extension/features#アプリケーション) |
| `replace` | [`PUT .../envs`](/ja/api-reference/endpoint/apps/envs/overwrite) | [`api.apps.envs.replace()`](/ja/sdks/js/environment_variables) | |
