
Ich spiele sehr gerne mit Bash-Skripten. Aber ich möchte die Art und Weise verbessern, wie ich Bash-Skripte verwende. Ich habe ein Skript ( nepleaks.sh
) wie unten beschrieben, das ich während meiner Programmierung verwende.
~ 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
Wenn ich mein Projekt brauche clean
, habe ich kommentiert runApp
und umgekehrt und dann Feuer
$./nepleaks
Ich möchte das jetzt so ändern:
$ nepleaks clean or $ nepleaks runApp
Mir gefiel die Idee nicht, erst nach der Beschaffung zu suchen nepleaks.sh
und dann anzurufen clean
oder runApp
…
Hier ist eines der schönen Dinge, die ich verwendet habehttps://github.com/cosmin/s3-bash/blob/master/s3-get, ich schaue mir das an, aber ihr Skript sah für mich komplex aus. Sie unterstützen etwas wie unten,
s3-get -k {accesskey} -s /{path}/{secretid} /{bucketname}
Antwort1
Versuche dies:
case "$1" in
(clean)
clean
exit 1
;;
(runApp)
runApp
exit 0
;;
(*)
echo "Usage: $0 {clean|runApp}"
exit 2
;;
esac
Jetzt können Sie Folgendes tun:
$ ./nepleaks clean # only run clean
$ ./nepleaks runApp # only runApp
Antwort2
$ cat <./nepleaks.sh && chmod +x ./nepleaks
> #!/usr/bin/sh
>
> clean() { ... ; }
> runApp() { ... ; }
>
> ${clean+clean}
> ${runApp+runApp}
...
$ env - clean= ./nepleaks.sh
# ^runs only clean()^ #