
私はbashスクリプトで遊ぶのが大好きです。しかし、bashスクリプトの使い方をもっと強化したいと思っています。nepleaks.sh
プログラミング中に使用する以下のようなスクリプト( )があります。
~ 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
私がプロジェクトに必要なときclean
、私はコメントしrunApp
、その逆を行い、そして発砲しました
$./nepleaks
さて、これを次のように修正したいと思います
$ nepleaks clean or $ nepleaks runApp
nepleaks.sh
調達してから電話しclean
たり、というアイデアは気に入りませんでしたrunApp
。
これは私が使った素敵なものの一つですhttps://github.com/cosmin/s3-bash/blob/master/s3-get、私は調べていますが、彼らのスクリプトは私には複雑に見えました。彼らは以下のようなものをサポートしています、
s3-get -k {accesskey} -s /{path}/{secretid} /{bucketname}
答え1
これを試して:
case "$1" in
(clean)
clean
exit 1
;;
(runApp)
runApp
exit 0
;;
(*)
echo "Usage: $0 {clean|runApp}"
exit 2
;;
esac
今、次のことができるようになりました:
$ ./nepleaks clean # only run clean
$ ./nepleaks runApp # only runApp
答え2
$ cat <./nepleaks.sh && chmod +x ./nepleaks
> #!/usr/bin/sh
>
> clean() { ... ; }
> runApp() { ... ; }
>
> ${clean+clean}
> ${runApp+runApp}
...
$ env - clean= ./nepleaks.sh
# ^runs only clean()^ #