JavaScript har en funktion til dette:
"world".startsWith("w") true 
Hvordan kan jeg teste dette med shell? Jeg har denne kode:
if [ world = w ] then echo true else echo false fi 
men den mislykkes, fordi den tester for lighed. Jeg foretrækker at bruge et indbygget, men alle hjælpeprogrammer fra denne side vil være acceptable:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
Svar
Hvis din shell er bash: inden for dobbelte parenteser, er højre side af operatoren == et mønster, medmindre det er fuldt citeret:
if [[ world == w* ]]; then echo true else echo false fi 
 Eller mere forsigtigt: [[ world == w* ]] && echo true || echo false [*] 
Hvis du ikke målretter mod bash specifikt: brug sagserklæringen til mønstermatchning
case "world" in w*) echo true ;; *) echo false ;; esac 
 [*] men du skal være forsigtig med A && B || C form fordi C vil blive udført, hvis  enten  A mislykkes  eller  B mislykkes. if A; then B; else C; fi formularen  kun  udfører C, hvis A mislykkes. 
Svar
set world 
Derefter:
if [ "${1%%w*}" ] then echo false else echo true fi 
-  Fjern substrat aggressivt fra og med 
wfra kildestreng - Hvis der er noget tilbage, starter kildestreng ikke med anden streng
 
Eller:
if [ "$1" = "${1#w}" ] then echo false else echo true fi 
-  Fjern 
wfra kildestreng - Sammenlign med kildestreng
 - Hvis det er lige, starter kildestrengen ikke med anden streng