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("請輸入?yún)?shù)", 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: 請輸入?yún)?shù)
Execution halted 正確輸出結(jié)果: [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的值 有兩個參數(shù) 代碼如下: #!/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 正確輸出結(jié)果: [dengfei@bogon qunti]$ perl 1.pl -a 1 -b 2
The result of a plus b is:3 3, Shell腳本傳遞參數(shù)思路: #!/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
}
# 如果沒有參數(shù), 輸出幫助文檔
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 正確輸出結(jié)果: |
|