仅当从命令行调用脚本时才运行代码

2024-01-01

因此,当我从命令行调用脚本时,我希望它接受一个 int 并对该值执行某些操作:

ruby script.rb


puts ARGV[0], etc...

但是,每当加载或需要脚本而不是从命令行调用脚本时,我想完全跳过这部分代码。如何检测脚本是否已通过命令行调用或刚刚加载?谢谢!


通常将其放在脚本的底部:

if __FILE__==$0
  # this will only run if the script was the main, not load'd or require'd
end

因为我喜欢在文件顶部看到主要操作,所以我通常会放一个def run!作为文件中的第一个方法,然后以以下方式结束文件:

run! if __FILE__==$0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当从命令行调用脚本时才运行代码 的相关文章

随机推荐

  • 如何使用 jQuery 从 dom 中删除空元素?

    WordPress 文字编辑器吐出空内容 p 像这样的标签 p p nbsp p 我想针对所有 p with nbsp 并删除它们 我相信我必须使用contains and remove功能 但我不确定这段代码是否会删除 p p 标签仅 n
  • 从匿名内部类中突破方法

    我有一个方法 void someMethod String someString final String testAgainst for int i 0 i lt testAgainst length i if someString eq
  • 手机上无法播放背景视频?

    我制作了一个登陆页面 视频在表单的背景下播放 它在桌面上运行良好 但我使用 Chrome 在我的 Android 设备上检查 背景视频无法在其上播放 谁能帮我解决这个问题 这是我的链接fiddle http jsfiddle net Jam
  • 如何从 MySQL 数据库获取“印地语”文本(印度本地语言)?

    我已将印地语数据存储在 MySQL 数据库中 请参阅下图 现在我想获取该数据并显示在我的 JSP 页面上 但是当我尝试在 java 代码中获取数据时 我将文本转换为以下格式 UID Test upgrade 1 UID 159 1 UID
  • 物体的点状后边缘

    在我的 Android 应用程序中 我需要显示一个 3D 对象 这没问题 但前边缘应该是实心的 后边缘应该是虚线的 我需要有像图片上这样的东西 如何使用 OpenGL ES 1 或 2 实现它 我尝试过蒂姆的想法 使用深度缓冲区 它有效 但
  • 如何在 Angular2 中使用 httpparamserializer

    我正在尝试在 Angular2 中使用 httpparamserializer 我用谷歌搜索了很多 但这些例子仅适用于 Angular1 如下所示 如何注入 httpParamSerializer 以在 templateUrl 中使用 ht
  • 如何检查数据库中是否存在视图?

    如果数据库中存在某个视图 我需要执行一些 SQL 代码 我将如何检查视图是否存在 编辑 正在使用的 DBMS 是 Microsoft SQL Server 对于 SQL 服务器 IF EXISTS select FROM sys views
  • 屏蔽帐号以仅查看 DevExpress GridViewDataColumn 中的最后 4 位数字

    我需要添加 Mask DisplayFormatString 以仅查看 DevExpress GridViewDataColumn 中的最后 4 位数字 举例来说 如果真实帐号是123456789 然后它应该显示为 6789 你能帮我解决这
  • 在 Ubuntu 上安装 Node.js

    我正在尝试安装 Node jsUbuntu 12 10 https en wikipedia org wiki Ubuntu version history Ubuntu 12 10 28Quantal Quetzal 29 Quantal
  • 来自 rake 任务的 render_to_string

    我想使用 Rake 任务来缓存我的站点地图 以便请求sitemap xml不会花很长时间 这是我到目前为止所拥有的 posts Post all sitemap render to string template gt sitemap si
  • svn 存储库显示非常大的大小

    我的一位办公室开发人员将视频上传到 svn 存储库 几天后 他删除了这些视频 但 svn 存储库仍然显示非常大的尺寸 我怎样才能减小 svn 存储库的大小 您的问题已在 Apache Subversion 常见问题解答中得到解答 如何从存储
  • EF core 3.1 无法运行复杂的原始 SQL 查询

    以下查询在 EF core 2 上运行良好 但在 EF core 3 上会抛出错误 我什至可以在 EF core 2 中的此查询之后添加一些包含 现在我已经放弃了 query just to have an Id var id Guid N
  • jquery工具覆盖,如何在切换覆盖时保留蒙版

    我有一个简单的问题 有 2 个叠加层 一个叠加层由另一叠加层触发 并由另一叠加层触发 由于任一时间只能有一个叠加层处于活动状态 因此触发叠加层 2 的叠加层 1 会正确关闭 然而 它带有遮罩 因此覆盖层 2 出现时没有遮罩 如何在 2 个叠
  • CakePHP:身份验证组件未登录

    我现在正在学习 CakePHP 我遵循了他们给我的每一个方向 我得到了很好的结果 但是当涉及到 Auth 组件 以及他们在网站上教授的非常简单的身份验证 时 我就是无法管理去做吧 方法 this gt Auth gt login 不断返回
  • 为其他网站存储 cookie

    我有多个 ASP NET 站点 当用户登录到其中一个站点时 我想存储一个 cookie 来告诉我用户已经登录 当用户稍后访问我拥有的其他网站之一时 我想从该网站读取 cookie 据我所知 您既不能从其他网站读取 cookie 也不能向其他
  • 如何捕获请求上的错误,然后打开模式,然后在模式关闭时使用 RxJS 重试

    我想调用一个服务器 该服务器可以使用 Angular2 的 HTTP 类返回授权失败 401 请求的流程应该如下所示 用户使用 myService getSomething subscribe 向服务器发出请求 如果服务器返回 401 打开
  • 将 json 数据加载到 Google 大查询的架构

    我对我们正在做的项目有一个问题 我尝试将此 JSON 提取到 Google Big Query 但无法从 JSON 输入中获取 JSON 投票对象字段 我尝试了模式中的 记录 和 字符串 类型 votes funny 10 useful 1
  • 量角器、Jasmine超时问题

    我正在使用 Protractor 和 Jasmine 进行 e2e 测试 我们的应用程序是 Angular 的 我已经写给getPageTimeout 500000 allScriptsTimeout 600000 在配置文件中 添加def
  • 将基类模板的“this”类型转换为其派生类

    我的代码的简化版本如下所示 template
  • 仅当从命令行调用脚本时才运行代码

    因此 当我从命令行调用脚本时 我希望它接受一个 int 并对该值执行某些操作 ruby script rb puts ARGV 0 etc 但是 每当加载或需要脚本而不是从命令行调用脚本时 我想完全跳过这部分代码 如何检测脚本是否已通过命令