ejecución de la función bash desde la línea de comando

ejecución de la función bash desde la línea de comando

Me encanta jugar mucho con el script bash. Pero quiero mejorar la forma en que uso el script bash. Tengo un script ( nepleaks.sh) como el siguiente que utilicé durante mi programación,

~   1 clean(){                                                                                                                                                                  
~   2  lein clean                                                                                         
+   3  lein deps                                                                                          
+   4 }    
    5                                                                                                     
    6 runApp(){                                                                                           
    7   echo("[info] : make sure you've started neo4j.")                                                 
    8   #lein run -m nepleaks-engine.core  
    ............
   34         
   35 clean                                                                                              
   36 #runApp  

Cuando necesito cleanmi proyecto, he estado comentando runAppy viceversa y luego disparo

$./nepleaks

Ahora, quiero modificar esto a algo como

$ nepleaks clean or $ nepleaks runApp

No me gustó la idea de buscar proveedores nepleaks.shy luego llamar cleano runApp.

Aquí está una de las cosas hermosas que usé.https://github.com/cosmin/s3-bash/blob/master/s3-getEstoy investigando, pero su guión me pareció complejo. Admiten algo como lo siguiente,

s3-get -k {accesskey} -s /{path}/{secretid} /{bucketname}

Respuesta1

Prueba esto:

case "$1" in
  (clean) 
    clean
    exit 1
    ;;
  (runApp)
    runApp
    exit 0
    ;;
  (*)
    echo "Usage: $0 {clean|runApp}"
    exit 2
    ;;
esac

Ahora puedes hacer:

$ ./nepleaks clean # only run clean
$ ./nepleaks runApp # only runApp

Respuesta2

$ cat <./nepleaks.sh && chmod +x ./nepleaks 
> #!/usr/bin/sh
>
> clean() { ... ; }
> runApp() { ... ; }
> 
> ${clean+clean}
> ${runApp+runApp}

...

$ env - clean= ./nepleaks.sh
# ^runs only clean()^ # 

información relacionada