1, R语言思路: #!/usr/bin/Rscript
library(optparse)
option_list <- list(
make_option(c("-a", "--aa"), type = "integer", default=FALSE,
help="Input a number"),
make_option(c("-b", "--bb"), type="integer", default=FALSE,
help="Input a number")
)
opt_parser = OptionParser(option_list=option_list);
opt = parse_args(opt_parser);
a = opt$a
b = opt$b
if (opt$a==0&&opt$b==0){
print_help(opt_parser)
stop("请输入参数", call.=TRUE)
}
c = a+b
cat(" a is:",a,"\n","b is:",b,"\n","a plus b is:",c,"\n") 打印帮助文档: [dengfei@bogon qunti]$ Rscript plus.R
Usage: plus.R [options]
Options:
-a AA, --aa=AA
Input a number
-b BB, --bb=BB
Input a number
-h, --help
Show this help message and exit
Error: 请输入参数
Execution halted 正确输出结果: [dengfei@bogon qunti]$ Rscript plus.R -a 1 -b 2
a is: 1
b is: 2
a plus b is: 3 2, Perl语言参考: 在Perl、Shell和Python中传参与输出帮助文档https://zhuanlan.zhihu.com/p/53067406) 一个简单的示例, 一个perl程序, 计算a+b的值 有两个参数 代码如下: #!/usr/bin/perl
use strict;
use Getopt::Long;
=head1 Description
This script is calculate the sum of a and b
=head1 Usage
$0 -a <input number> -b <input number>
=head1 Parameters
-a [int] Input raw number
-b [int] Input raw number
=cut
my($a,$b);
GetOptions(
"a:s"=>\$a,
"b:s"=>\$b
);
die `pod2text $0` if ((!$a) or (!$b));
print("The result of a plus b is:",$a+$b,"\n"); 逻辑如下: my($a,$b);
GetOptions(
"a:s"=>\$a,
"b:s"=>\$b
);
die `pod2text $0` if ((!$a) or (!$b)); 2, 使用POD文档, 编写指南 =head1 Description
This script is calculate the sum of a and b
=head1 Usage
$0 -a <input number> -b <input number>
=head1 Parameters
-a [int] Input raw number
-b [int] Input raw number
=cut 打印帮助文档: [dengfei@bogon qunti]$ perl 1.pl
Description
This script is calculate the sum of a and b
Usage
$0 -a <input number> -b <input number>
Parameters
-a [int] Input raw number
-b [int] Input raw number 正确输出结果: [dengfei@bogon qunti]$ perl 1.pl -a 1 -b 2
The result of a plus b is:3 3, Shell脚本传递参数思路: #!/bin/bash
# 定义帮助文档
helpdoc(){
cat <<EOF
Description:
This is the description.
Usage:
$0 -a <input number> -b <input number>
Option:
-a a number
-b b number
EOF
}
# 如果没有参数, 输出帮助文档
if [ $# = 0 ]
then
helpdoc
exit 1
fi
while getopts ":a:b:" opt
do
case $opt in
a)
a=$OPTARG
;;
b)
b=$OPTARG
;;
?)
echo "Unknown option: $opt"
helpdoc
exit 1
;;
esac
done
sum=$(expr $b + $a)
echo "a is $a"
echo "b is $b"
echo "a plus b is:$sum" 打印帮助文档: [dengfei@bogon qunti]$ bash plus.sh
Description:
This is the description.
Usage:
plus.sh -a <input number> -b <input number>
Option:
-a a number
-b b number 正确输出结果: |
|