¿Cómo verifico el número correcto de argumentos (un argumento)? Si alguien intenta invocar el script sin pasar el número correcto de argumentos, y verificando que el argumento de la línea de comando realmente exista y sea un directorio.
148

shelleso significa/bin/shRespuestas:
Traducción: si el número de argumentos no es (numéricamente) igual a 1 o el primer argumento no es un directorio, envíe el uso a stderr y salga con un código de estado de falla.
Informe de errores más amigable:
fuente
if [ "$#" -ne 1 ] ; theno bienif ! [ -d "$1" ]; thenpara ver qué cláusula está causando el problema.-drespecta. Si desea agregar un cheque por separado, puede usarlo-epara verificar la existencia.-edevuelve verdadero si el archivo existe. Agregué un informe de error más amigable a la respuesta.gato script.sh
ejecutarlo como abajo -
La salida será como:
fuente
Puede verificar el número total de argumentos que se pasan en la línea de comando con "
$#" Digamos, por ejemplo, que mi nombre de script de shell eshello.shLa salida será
hello-worldfuente