Inmatning av data i POSIX skalskript
#!/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