我有以下内容:
_shellScript = "../Dependency/test.sh"
exec 'sh #{_shellScript}'
但是当我尝试执行ruby脚本时,却只在shell提示符处停止了,而没有执行存储在变量_shellScript中的脚本。
如果有任何想法,将不胜感激!
exec
结束Ruby进程并将shell传递给指定的子进程。如果您需要将test.sh
的所有输出传递到控制台,则需要使用system("sh #{_shellScript}")
。如果您需要通过stdin和stdout传递数据并接收数据,请查看popen
。'sh #{_shellScript}'
中的 #
将被视为注释,因此它与 exec 'sh'
和命令提示符相同。 - mu is too shortexec
而不是 system
) :) - mu is too short只需尝试以下行:
%x[#{_shellScript}]
exec
字符串中使用了单引号。在单引号字符串中,Ruby 不支持插值(#{}
)。这也可能是错误的原因。 - Linuxios