本文目录导读:

在大多数主流脚本语言中,获取命令行参数的方法不同,以下是几种常见脚本语言的实现方式:
Bash/Shell 脚本
#!/bin/bash
# 直接使用位置变量
echo "脚本名: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "所有参数: $@"
echo "参数个数: $#"
# 遍历所有参数
for arg in "$@"; do
echo "参数: $arg"
done
# 使用 shift 处理参数
while [ $# -gt 0 ]; do
echo "处理参数: $1"
shift
done
Python
import sys
# 基本获取
print(f"脚本名: {sys.argv[0]}")
print(f"第一个参数: {sys.argv[1]}")
print(f"所有参数: {sys.argv[1:]}") # 切片去掉脚本名
# 使用 argparse 模块
import argparse
parser = argparse.ArgumentParser(description='示例脚本')
parser.add_argument('name', help='用户名')
parser.add_argument('--age', type=int, help='年龄')
parser.add_argument('--verbose', '-v', action='store_true', help='详细输出')
args = parser.parse_args()
print(f"名称: {args.name}")
print(f"年龄: {args.age}")
print(f"详细: {args.verbose}")
JavaScript (Node.js)
// 使用 process.argv
console.log('脚本名:', process.argv[1]);
console.log('所有参数:', process.argv.slice(2));
// 使用 yargs 库(需要安装:npm install yargs)
const yargs = require('yargs')
.option('name', {
alias: 'n',
description: '用户名',
type: 'string'
})
.option('age', {
alias: 'a',
description: '年龄',
type: 'number'
})
.argv;
console.log('名称:', yargs.name);
console.log('年龄:', yargs.age);
console.log('其他参数:', yargs._);
Ruby
# 使用 ARGV 常量
puts "第一个参数: #{ARGV[0]}"
puts "所有参数: #{ARGV}"
# 使用 OptionParser
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "用法: script.rb [选项]"
opts.on("-n", "--name NAME", "用户名") do |n|
options[:name] = n
end
opts.on("-a", "--age AGE", Integer, "年龄") do |a|
options[:age] = a
end
opts.on("-v", "--verbose", "详细输出") do |v|
options[:verbose] = v
end
end.parse!
puts options.inspect
Perl
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long qw(GetOptions);
# 获取命令行参数
print "脚本名: $0\n";
print "所有参数: @ARGV\n";
# 使用 Getopt::Long
my $name = '';
my $age = 0;
my $verbose = 0;
GetOptions(
'name=s' => \$name,
'age=i' => \$age,
'verbose' => \$verbose
) or die "参数错误\n";
print "名称: $name\n" if $name;
print "年龄: $age\n" if $age;
print "详细: $verbose\n" if $verbose;
通用建议
- 简单脚本:直接使用位置参数(如 Bash 的 $1, Python 的 sys.argv)
- 复杂脚本:使用专门的参数解析库(如 Python 的 argparse, Node.js 的 yargs)
- 处理大量参数:使用循环遍历参数
- 错误处理:检查必要参数是否存在,提供用法说明
选择哪种方式取决于你的脚本复杂度和使用的编程语言。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播