首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神秘:厨师-客户/刀:他们忽略了knife.rb和client.rb中的任何错误。

神秘:厨师-客户/刀:他们忽略了knife.rb和client.rb中的任何错误。
EN

Stack Overflow用户
提问于 2020-12-10 06:01:48
回答 1查看 54关注 0票数 0

我碰巧发现,在~/.chef/knife.rb/etc/chef/client.rb中,任何错误都会被刀或厨师客户忽略。

代码语言:javascript
复制
...
a_non_exist_method a_non_exist_var
...
puts "==== #{a_non_exist_method}"

这是完全没有问题的,即使a_non_exist_method a_non_exist_var是绝对错误的。结果当然是

代码语言:javascript
复制
==== 

chef-client/knife如何执行client.rb/knife.rb

PS:我知道knife.rbclient.rb是一个配置文件,不应该在那里添加用户程序逻辑,只是好奇它为什么没有错误地把任何东西放进去?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-30 22:26:00

它被计算为Chef::Config类实例,它继承于mixlib-config,这取决于您如何测试不处于严格模式的类(相关代码)。

因此,当不设置严格模式时,您可能会忽略一个属性,而不会发出警告或出错。

您的puts只是被计算为标准的ruby,字符串内插搜索一个变量,即使您称它为a_non_exist_method,并且从ruby鸭子输入,它是一个零值,内插为string是一个空字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65229290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档