> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/da/vejledninger/secrets/current-shell.md).

# Brug hemmeligheder i den aktuelle shell

Indlæs hemmeligheder fra boksen i den aktuelle Bash- eller PowerShell-session med devo secret shell enter, og gendan den derefter med leave.

`devo secret run` giver hemmeligheder til én kommando. Når De har brug for dem til flere kommandoer i træk, i den samme Bash- eller PowerShell-session, skal De bruge `devo secret shell enter`. Den sætter miljøvariabler i den aktuelle shell, og `devo secret shell leave` sætter dem tilbage som de var.

{% hint style="warning" %}
Efter `devo secret shell enter` ligger værdierne i klartekst i shellsessionen. Hvert program De starter fra den session, arver dem, og shellhistorikken, transskriptioner eller fejlfindingsværktøjer kan udlevere dem. Maskering gælder ikke. Forlad området, så snart De er færdig, og foretræk [devo secret run](/cli/da/vejledninger/secrets/run-with-secrets.md), når én kommando er nok.
{% endhint %}

## Sådan virker det

Et program kan ikke ændre miljøet i den shell der startede det. Derfor sætter `devo secret shell enter` ikke selv noget. Den udskriver et kort script til shellen med værdierne i, og De kører det script med `eval` (Bash) eller `Invoke-Expression` (PowerShell). `--shell` angiver hvilken slags script der skal udskrives: `bash` eller `pwsh`.

## Kontrollér først referencerne

`--check` kører en læsning uden værdi af hver reference, uden at læse nogen hemmelighed og uden at udskrive et script. Det bekræfter syntaksen og, for en navngiven reference eller på en lokal profil, boksen og posten, men ikke at feltet kan læses. På Devolutions Cloud og Devolutions Server slås en kanonisk reference ikke op. Det kræver JSON-output:

```bash
devo secret shell enter --shell bash --env-ref DB_PASSWORD=<reference> --check --output json
```

## Gå ind i omfanget

Gentag `--env-ref NAME=<reference>` for hver variabel. Kør kun scriptet hvis kommandoen lykkedes.

{% tabs %}
{% tab title="Bash" %}

```bash
enter="$(devo secret shell enter --shell bash \
  --env-ref DB_USER=<username-reference> \
  --env-ref DB_PASSWORD=<password-reference>)" && eval "$enter"
unset enter
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$enter = & devo secret shell enter --shell pwsh `
  --env-ref DB_USER=<username-reference> `
  --env-ref DB_PASSWORD=<password-reference> | Out-String
if ($LASTEXITCODE -eq 0) { Invoke-Expression $enter }
Remove-Variable enter
```

{% endtab %}
{% endtabs %}

Hvis en reference ikke kan læses, udskriver kommandoen ingenting på sit standardoutput, rapporterer fejlen og afsluttes med en kode forskellig fra nul. Shellen forbliver uændret.

{% hint style="danger" %}
`eval` og `Invoke-Expression` kører alt hvad de modtager. Giv dem kun outputtet fra en `devo secret shell enter`- eller `devo secret shell leave`-kommando der lykkedes, og bland aldrig dens fejloutput ind i det.
{% endhint %}

## Se hvad der er indlæst

```bash
devo secret shell status --shell bash --output json
```

Statussen viser om et omfang er aktivt, hvor mange omfang der er indlejret, og navnene på de variabler som det seneste omfang har angivet. Den viser aldrig værdier, og den har brug for JSON-output.

## Forlad omfanget

{% tabs %}
{% tab title="Bash" %}

```bash
leave="$(devo secret shell leave --shell bash)" && eval "$leave"
unset leave
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$leave = & devo secret shell leave --shell pwsh | Out-String
if ($LASTEXITCODE -eq 0) { Invoke-Expression $leave }
Remove-Variable leave
```

{% endtab %}
{% endtabs %}

At forlade gendanner hver variabel som den var før De gik ind. Dens tidligere værdi hvis den havde en, eller slet ingen variabel hvis den ikke havde.

## Indlejr omfang

De kan gå ind i et omfang mens et andet er aktivt, for eksempel for at tilføje et andet sæt legitimationsoplysninger. Hver `devo secret shell leave` lukker kun det seneste omfang, så De forlader dem i omvendt rækkefølge af hvordan De gik ind.

## Godt at vide

* Det genererede Bash-script bruger Bash-funktioner, så kør det i Bash, ikke i en anden POSIX-shell. Til PowerShell virker `--shell powershell` på samme måde som `--shell pwsh`.
* Kør `devo secret shell status` og `devo secret shell leave` med den samme `--shell`-værdi De brugte til at gå ind.
* `devo secret shell enter` læser ikke miljøet eller `.env`-filer. Angiv hver variabel med `--env-ref`.
* Referencer løses gennem den aktuelle kontekst. Tilføj `--context <context-name>` for at bruge et andet arbejdsområde.

## Næste

* [What stays hidden, and what doesn't](/cli/da/vejledninger/understand/security-model.md)
* [Run a command with its secrets](/cli/da/vejledninger/secrets/run-with-secrets.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/da/vejledninger/secrets/current-shell.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
