Chinaunix

标题: shell脚本中如何实现Help功能? [打印本页]

作者: johnson0418    时间: 2015-12-08 13:58
标题: shell脚本中如何实现Help功能?
我想在执行a.sh时,可使用-h & --help的功能,如何编写?
例:
>a.sh -h
>显示帮助的信息。。。
作者: vagrant_1220    时间: 2015-12-08 14:03
需要对输入参数做处理,例如
while [ $# -gt 0 ]; do   
    case $1 in   
      
        -h)   
              usage            
            shift 1
        。。。。
作者: johnson0418    时间: 2015-12-08 14:23
回复 2# vagrant_1220


    不明白。  试了一下 好像不行
作者: vagrant_1220    时间: 2015-12-08 14:35
给你的只是提示 ,这个可运行

#!/bin/bash



usage(){
    echo -e "Usage: $0 [OPTIONS]"

        echo -e " -H --help  display help info ."
exit 1
}



while [ $# -gt 0 ]; do
    case $1 in

        -h|--help)
            usage
            shift 1
            ;;




    esac
done
作者: johnson0418    时间: 2015-12-08 19:14
回复 4# vagrant_1220


    shell了解有限,非常感谢您的回复。OK了
作者: johnson0418    时间: 2015-12-08 19:43
回复 4# vagrant_1220


    有个问题,./a.sh -h的时候,他会执行并显示帮助信息,可否使用-h后只显示帮助信息并不执行此shell?我把你写的那一段放在我的shell最后了,不知是不是放的位置不对?

[root]# ./a.sh -h
..
...
....
.....
......
Installation is completed.
Usage: ./zz [OPTIONS]
-H --help  display help info .
作者: jcdiy0601    时间: 2015-12-09 09:53
  1. #!/bin/bash

  2. case $1 in
  3. -h)
  4.         echo 'hi,this is help...'
  5.         ;;
  6. esac
复制代码

作者: johnson0418    时间: 2015-12-09 09:59
回复 7# jcdiy0601

谢谢你的回复

[root]# a.sh -h
-bash: a.sh: command not found


[root]# ./a.sh -h      
..
...
....
.....
......
Installation is completed.
hi,this is help...

但是他已经执行a.sh文件 了,我意思是a.sh -h或./a.sh -h只是看帮助信息,不需要执行文件 。要怎么写?
作者: seanking1987    时间: 2015-12-09 10:17
楼上好几个人都回答的正确的。
但是需求有千万种,不太可能每一个需求都让别人全部一字不漏的写完,可以copy回去再修改修改。

楼主的“有个问题,./a.sh -h的时候,他会执行并显示帮助信息,可否使用-h后只显示帮助信息并不执行此shell?我把你写的那一段放在我的shell最后了,不知是不是放的位置不对?”

1.帮助-h要写在最前面。
2.执行完-h的操作后加一个exit直接退出

作者: johnson0418    时间: 2015-12-09 10:29
回复 9# seanking1987


      我在试试,主要是我对shell不熟悉,只是日常工作中经常 会用到几个命令,所以写了一个,这不来这请教大神嘛。非常感谢你们耐心的回答!!!!
作者: lrz    时间: 2015-12-26 01:49
处理参数最好用getopts




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2