A JavaScript rendelkezik ezzel a funkcióval:
"world".startsWith("w") true
Hogyan tesztelhetem ezt héjjal? Ez a kód megvan:
if [ world = w ] then echo true else echo false fi
, de nem sikerül, mert teszteli az egyenlőséget. Inkább egy beépített beépítést használnék, de az ezen az oldalon található összes segédprogram elfogadható:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
Válasz
Ha héja bash: dupla zárójelben, az == operátor jobb oldala egy minta, hacsak nem teljesen idézett:
if [[ world == w* ]]; then echo true else echo false fi
Vagy röviden: [[ world == w* ]] && echo true || echo false
[*]
Ha nem kifejezetten a bash-t célozza meg: használja a kis- és nagybetűk használatát a mintaillesztéshez
case "world" in w*) echo true ;; *) echo false ;; esac
[*], de vigyáznia kell a A && B || C
űrlap, mert C
akkor kerül végrehajtásra, ha vagy A meghiúsul vagy B meghibásodik. A if A; then B; else C; fi
űrlap csak csak akkor hajtja végre a C-t, ha A nem sikerül.
Válasz
set world
Ezután:
if [ "${1%%w*}" ] then echo false else echo true fi
- Agresszívan távolítsa el a
w
a forrás karakterláncból - Ha maradt valami, akkor a forrás karakterlánc nem a második karakterlánccal kezdődik
Vagy:
if [ "$1" = "${1#w}" ] then echo false else echo true fi
-
w
eltávolítása a forrás karakterláncból - Összehasonlítás a forrás karakterlánccal
- Ha egyenlő, akkor a forrás karakterlánc nem a második karakterlánccal kezdődik