gpt4 book ai didi

ruby - 是否有可能获得用于调用 ruby​​ 脚本的未解释的命令行?

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:08 25 4
gpt4 key购买 nike

根据标题,是否可以获取用于调用 ruby​​ 脚本的原始命令行?

我所追求的确切行为与直接调用命令时的 SSH 类似:

ssh somehost -- ls -l

SSH 将在服务器上运行“ls -l”。它需要被解析,因为如果 shell 已经解释引号并执行扩展等命令可能无法正常工作(如果它包含引号等)。这就是ARGV不好的原因;引号被删除。

考虑以下示例:

my-command -- sed -e"s/something/something else/g"

此 ARGV 包含以下内容:

--
sed
-es/something/something else/g

sed 命令将失败,因为引号将被删除并且替换命令中的空格意味着 sed 将看不到“else/g”。

因此,重申一下,是否可以获取用于调用 ruby​​ 脚本的原始命令行?

最佳答案

不,这是在操作系统级别。

您可以尝试简单地引用整个输入:

my-command -- "sed -e\"s/something/something else/g\""

在 Ruby 中,可以这样使用:

ruby -e "puts ARGV[0]" -- "sed -e\"s/something/something else/g\""
(output) sed -e"s/something/something else/g"

或者,在文件 putsargv1.rb 中(内容为 puts ARGV[1]):

ruby -- "putsargv1.rb" "sed -e\"s/something/something else/g\""
(output) sed -e"s/something/something else/g"

关于ruby - 是否有可能获得用于调用 ruby​​ 脚本的未解释的命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22056621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com