新闻详情

新闻详情

首页 / 资讯中心 / 详情

Wren CLI 的 Process 类指南:用 allArguments 与 arguments 读取命令行参数

发布时间:2026/11/14 16:36:09来源:尧图网络
Wren CLI 的 Process 类指南:用 allArguments 与 arguments 读取命令行参数
编程语言语言运行时编译器【免费下载链接】wrenThe Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.项目地址https://gitcode.com/gh_mirrors/wr/wren点击查看免费下载本篇技术指南聚焦 Wren CLIwren-clios模块中的Process类讲解如何通过Process.allArguments与Process.arguments两个静态方法访问操作系统进程信息——即当前 Wren 进程启动时收到的命令行参数。读完本文你将掌握两者的差异、在脚本中读取参数的完整写法以及它们在 Wren CLI 模块体系中的定位与限制。背景Wren CLI 与 os 模块Wren 语言本身被刻意设计得足够精简——包括内建语言特性、标准库和 VM 本身。要访问文件、网络及其他 IO 能力需要一个“基于语言 VM 打造的工具”这就是 Wren CLI 项目的由来它是一个独立的、可运行的单二进制脚本工具并带有自己的一套标准库与模块详见 Wren CLI 概述。其中os模块用于暴露底层操作系统提供的能力目前包含两个类见 os 模块索引Platform描述当前操作系统的基本信息Process操作操作系统进程包括当前正在运行的进程。本文的主角就是Process类。它没有实例方法全部通过静态方法访问且当前文档定义的静态方法只有两个allArguments与arguments。Process.allArguments获取完整命令行参数Process.allArguments返回一个列表包含 Wren 进程被启动spawn时传入的所有命令行参数。它的覆盖范围是“全量”的Wren 可执行程序本身正在运行的脚本文件路径如果有传给 Wren 自身的其他选项传给脚本程序的自定义参数。文档给出的示例——如果你这样运行$ wren file.wren arg那么在脚本中调用System.print(Process.allArguments) // [wren, file.wren, arg]得到的列表依次是[wren, file.wren, arg]wren是可执行文件名file.wren是脚本路径arg是传给程序的参数。在实际脚本中你可以用它做更灵活的处理例如逐个打印for (arg in Process.allArguments) { System.print(arg) }或者检查是否带有某个自定义选项if (Process.allArguments.contains(--verbose)) { System.print(verbose mode on) }需要说明的是Wren CLI 的交互式模式不带任何参数直接运行wren_cli与脚本模式wren_cli my_script.wren都遵循常规的进程参数语义——具体启动方式可参考 Wren CLI 用法。可执行文件的实际名称取决于你的构建与安装方式文档示例中为wrenallArguments返回的正是该进程入口收到的原始 argv 集合。Process.arguments只获取“属于你程序”的参数Process.arguments同样返回命令行参数列表但它的过滤规则是只包含传给“你的程序”的参数不包含 Wren 自身处理的参数。同样的运行方式$ wren file.wren arg脚本中调用System.print(Process.arguments) // [arg]这次返回的列表只有[arg]——可执行文件名wren、脚本路径file.wren以及任何 Wren 自身的选项都被排除在外留下的是真正要交给脚本逻辑使用的参数。这一点对命令行脚本开发非常关键你通常不需要关心“我是被哪个解释器启动的、脚本路径是什么”只需拿到用户真正传入的自定义参数。例如一个带参数打印的脚本if (Process.arguments.isEmpty) { System.print(Usage: wren greet.wren name) } else { System.print(Hello, %(Process.arguments[0])!) }两个方法的差异速查方法返回内容是否包含可执行文件是否包含脚本路径是否包含 Wren 自身选项Process.allArguments进程收到的全部命令行参数是是若运行脚本是Process.arguments仅传给程序的自定义参数否否否一个实用的判断基准是arguments是allArguments中过滤掉解释器自身相关项后的子集。当你在脚本中需要“完整上下文”时用allArguments需要“纯粹的业务参数”时用arguments。与 Platform 类的配合os 模块的两个入口Process处理的是“进程”维度的信息而同一模块中的 Platform 处理的是“操作系统”维度的信息二者互补。Platform提供name操作系统名称如Linux、OS X、Windows等、isPosix是否支持 POSIX 标准和isWindows是否为 Windows 系列。结合使用可以写出具备平台与参数双重感知的启动脚本例如if (Platform.isWindows) { // Windows 下的参数处理逻辑 System.print(Running on Windows with args: %(Process.arguments)) } else { System.print(Running on a POSIX system with args: %(Process.arguments)) }模块边界与历史沿革两点值得注意的事实CLI 模块与核心语言分离Process等 CLI 模块并非 Wren 语言核心的一部分。根据 CLI 模块说明这些模块与 libuv 及命令行应用的内部实现深度绑定难以被单独拆出并嵌入到宿主应用中因此为 CLI 编写的脚本具有 CLI 特定性——除非其他宿主实现了相同的 API否则这些脚本只能在 CLI 环境下运行。模块命名沿革本仓库的 CHANGELOG 记录了一次“将process模块重命名为os”的变更见CHANGELOG.md第 124 行附近。这意味着Process类最初位于名为process的模块中后来才并入现在的os模块。如果你在旧资料中看到process模块的引用其对应内容如今在os模块下。小结Process类是 Wren CLI 脚本中读取命令行参数的标准入口Process.allArguments返回进程收到的全部参数含解释器名、脚本路径与解释器选项Process.arguments只返回传给程序本身的自定义参数二者均返回 Wren 的List可配合System.print、迭代、isEmpty、下标访问等常规 List 操作使用。当你的 Wren CLI 脚本需要解析用户输入、检测启动选项或打印用法提示时优先使用Process.arguments需要完整诊断信息比如确认解释器如何被调用时再使用Process.allArguments。更多模块上下文可继续阅读 CLI 模块索引 与 Wren CLI 用法。赞分享编程语言语言运行时编译器【免费下载链接】wrenThe Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.项目地址https://gitcode.com/gh_mirrors/wr/wren点击查看免费下载相关推荐urfave/cli v2 参数读取指南用 cli.Context.Args() 处理命令行位置参数urfave/cli v2 参数读取指南用 cli.Context.Args 处理命令行位置参数 本篇指南围绕 docs/v2/examples/argumeCLI开发工具CommandLineUtils 命令行参数解析Arguments 详解CommandLineUtils 命令行参数解析Arguments 详解 引言 在开发命令行工具时参数解析是最基础也是最重要的功能之一。CommandLinurfave/cli v3 位置参数实战用 cmd.Args() 读取并遍历命令行参数urfave/cli v3 位置参数实战用 cmd.Args 读取并遍历命令行参数 urfave/cli v3 在 cli.Command 上提供了 ArgsCLI开发工具上一篇免费歌词制作神器三分钟学会用歌词滚动姬制作专业级LRC文件下一篇歌词滚动姬免费开源的LRC歌词制作终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉