String comparison (Bash)
Versie door Jeroen Strompf (overleg | bijdragen) op 16 feb 2016 om 17:13
Voorbeelden van de gebruikelijke syntaxis voor string comparison op niet-bestaande of lege strings:
if [ -n "$var" ]; then # Do something when var is non-zero length fi if [ "$var" ]; then # Do something when var is non-zero length fi if [ -z "$var" ]; then # Do something when var is zero-length fi if [ ! "$var" ]; then # Do something when var is zero-length fi
Maar wat is nu de beste manier om te testen op null
of op een lege string? Nou, dat hangt er vanaf:
1a 2a 3a 4a 5a 6a |1b 2b 3b 4b 5b 6b [ [" [-n [-n" [-z [-z" |[[ [[" [[-n [[-n" [[-z [[-z" unset: false false true false true true |false false false false true true null : false false true false true true |false false false false true true space: false true true true true false |true true true true false false zero : true true true true false false |true true true true false false digit: true true true true false false |true true true true false false char : true true true true false false |true true true true false false hyphn: true true true true false false |true true true true false false two : -err- true -err- true -err- false |true true true true false false part : -err- true -err- true -err- false |true true true true false false Tstr : true true -err- true -err- false |true true true true false false Fsym : false true -err- true -err- false |true true true true false false T= : true true -err- true -err- false |true true true true false false F= : false true -err- true -err- false |true true true true false false T!= : true true -err- true -err- false |true true true true false false F!= : false true -err- true -err- false |true true true true false false Teq : true true -err- true -err- false |true true true true false false Feq : false true -err- true -err- false |true true true true false false Tne : true true -err- true -err- false |true true true true false false Fne : false true -err- true -err- false |true true true true false false
Casus feb. 2016
Script:
#!/bin/bash sleutel=$1 if [ -z $sleutel ]; then echo "Er mankeert iets aan de eerste inputvariabele"; fi
Resultaat:
Invoer Evaluatie ------ --------- * Geen invoer True * "" True * " " True * Spaties True * Hoihallo False