
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 clean
mi proyecto, he estado comentando runApp
y 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.sh
y luego llamar clean
o 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()^ #