ara*_*ani 9 ruby gem bundle exec bundler
当我使用bundle exec它调用命令时,需要传入的参数.例如:
bundle exec my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
在这种情况下--verbose,它被用作捆绑器参数,因为它应该用于my_command.我知道以下方法可行:
bundle exec 'my_command run --verbose'
Run Code Online (Sandbox Code Playgroud)
是否有可能避免引用?我使用的命令已经有很多引号.我希望这样的东西可以工作,但它没有:
bundle exec -- my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
对于bundler,我没有看到太多关于此的文档.任何想法将不胜感激.
the*_*Man 12
这看起来像在shell中将一个命令传递给另一个命令时常见的问题,看起来你接近我使用的东西.而不是使用:
bundle exec my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
要么:
bundle exec -- my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
尝试:
bundle exec my_command -- run --verbose
Run Code Online (Sandbox Code Playgroud)
使用bundle exec --中断命令链bundle exec.exec是一个子命令bundle,my_command是一个参数exec.为参数my_command,那么,既不bundle或exec需要知道他们这样--去哪里你想打破的参数,该链bundle.
从bundler的源代码检查,默认行为是将所有参数传递bundle exec给to之后Kernel.exec,因此--verbose参数将传递给您的命令,而不是bundle。
bundle exec my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
将在捆绑包的上下文中运行以下命令
Kernel.exec('my_command', 'run', '--verbose')
Run Code Online (Sandbox Code Playgroud)
和
bundle exec -- my_command run --verbose
Run Code Online (Sandbox Code Playgroud)
导致错误,因为没有命名命令/脚本--。
在这里检查测试用例:
#!/usr/bin/env ruby
# coding: utf-8
# file: test.rb
p ARGV
Run Code Online (Sandbox Code Playgroud)
测试:
$ bundle exec ruby test.rb --verbose --arg1
["--verbose", "--arg1"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2844 次 |
| 最近记录: |