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

Inmatning av data i POSIX skalskript

2026-05-12 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 inmatning och sparar i en variabel med maximal portabilitet.

Skriptkod

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

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

echo "Skriv några visdomsord: "
read -r wisdom

Exempel 2 - Instruktion och inmatning på samma rad:

printf "Skriv några visdomsord: "
read -r wisdom

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

if [ -z "${wisdom}" ]; then
	printf "Skriv några visdomsord: "
	read -r wisdom
fi

Verifiera: är detta POSIX-kompatibelt?

Detta kontrolleras enklast med programmet shellcheck.

shellcheck -s sh posix-user-input.sh

Detta är första inlägget i en serie om att skripta Unixliknande system med maximal portabilitet. Nästa inlägg är Inmatning av lösenord och hemligheter i POSIX skalskript


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