JavaScript tiene una función para esto:
"world".startsWith("w") true ¿Cómo puedo probar esto con shell? Tengo este código:
if [ world = w ] then echo true else echo false fi pero falla porque está probando la igualdad. Preferiría usar una función incorporada, pero cualquier utilidad de esta página sería aceptable:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
Respuesta
Si su shell es bash: entre corchetes dobles, el lado derecho del operador == es un patrón a menos que esté completamente entre comillas:
if [[ world == w* ]]; then echo true else echo false fi  O más brevemente: [[ world == w* ]] && echo true || echo false [*] 
Si no está apuntando a bash específicamente: use la declaración case para la coincidencia de patrones
case "world" in w*) echo true ;; *) echo false ;; esac  [*] pero debe tener cuidado con A && B || C porque C se ejecutará si   A falla  o  B falla. El formulario if A; then B; else C; fi  solo  ejecutará C si A falla. 
Respuesta
set world Luego:
if [ "${1%%w*}" ] then echo false else echo true fi -  Elimina agresivamente la subcadena que comienza con wde la cadena fuente
- Si queda algo, entonces la cadena fuente no comienza con la segunda cadena
O:
if [ "$1" = "${1#w}" ] then echo false else echo true fi -  Eliminar wde la cadena fuente
- Comparar con la cadena fuente
- Si es igual, la cadena de origen no comienza con la segunda cadena