У меня есть скрипт ruby, который использует open3
для запуска команд оболочки внутри скрипта, и я использую Ubuntu 18.04 и bash.
Когда я запускаю этот скрипт, он выдает такие ошибки, как 0: sh: 2: pushd: not found
. Я искал, и одна вещь, которую я нашел, была https://stackoverflow.com/a/17044484/5553963, которая подсказала, что мы используем ENV["SHELL"] = "/bin/bash"
, но когда я проверил свою переменную окружения, у меня уже было это:
$ printenv "SHELL"
/bin/bash
Как я могу заставить этот скрипт работать на моей машине?
Первая часть этого скрипта:
#!/usr/bin/env ruby
require 'open3'
def run(i, cmd)
res = ""
Open3.popen3(cmd) do |stdin, stdout, stderr, thread|
И моя рубиновая версия: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]