从命令行执行 bash 函数

从命令行执行 bash 函数

我非常喜欢玩 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()^ # 

相关内容