Ombyggnad 2026/2027 pågår - döda länkar förekommer. Mer information

Inmatning av lösenord och hemligheter i POSIX skalskript

2026-05-19 på Anders Ytterströms webblogg

#!/bin/bash i all ära, men vad om #!/bin/sh - den minsta gemensamma nämnaren för POSIX-compliance?

Detta inlägg visar hur ett skript tar emot hemlig inmatning och sparar i en variabel (t ex lösenord, tokens) med maximal portabilitet.

Skriptkod

Nedan visar exempel på att mata in text genom att skriva eller klistra in. Vid tryck på Enter sparas den inmatade texten i i variabeln wisdom.

Exempel 1 - Instruktion och inmatning på en ny rad:

echo "Ange lösenord: "
stty -echo
read -r pw
stty echo

Exempel 2 - Instruktion och inmatning på samma rad:

printf "Ange lösenord: "
stty -echo
read -r pw
stty echo

Exempel 3 - Visa bara instruktion och inmatning om variabeln pw inte är satt:

if [ -z "${pw}" ]; then
	printf "Ange lösenord: "
	stty -echo
	read -r pw
	stty echo
fi

Verifiera: är detta POSIX-kompatibelt?

Detta kontrolleras enklast med programmet shellcheck.

shellcheck -s sh posix-secret-user-input.sh

Detta är ett inlägg i en serie om att skripta Unixliknande system med maximal portabilitet. Förgående inlägg i serien: Inmatning av data i POSIX skalskript.


Ovanstående inlägg publicerades 2026-05-19. Det går att prenumerera på denna webblogg. Härifrån är följande mål rekommenderade: