我正在尝试从shell脚本输入irb
,执行某些操作,然后返回到shell脚本。
我该怎么做?
#!/bin/bash
#example_app
# Some shell instructions here
irb
four = 2 + 2
exit
echo "This text is not reached and the process hangs open"
注意:我不应该尝试加载irb来输入静态代码,我同意你们的观点。我没想到我在做什么。我正在与一个AWS库进行交互,我试图将相同的理念用于自动化,而不必考虑它。
答案 0 :(得分:2)
您可以将此处的文档传递给irb
:
irb <<SCRIPT
four = 2 + 2
puts four
SCRIPT
但是,我不认为这会完成你想要做的事情。这是输出:
Switch to inspect mode.
four = 2 + 2
4
puts four
4
nil
类似于bash -x
。为什么不简单地使用普通的ruby
呢?
ruby <<SCRIPT
four = 2 + 2
puts four
SCRIPT
4
如果您不打算与进行交互,则无需生成交互式 shell。
答案 1 :(得分:0)
我想你想要解释的答案 fork and exec in bash 基本上:
function_to_fork(){ IRB }
function_to_fork&amp;
如果您希望在那里进行某些交互以影响父进程或父进程等待,那么可能不起作用。
我在下面的评论格式不是很好:
通过以下程序,我能够实现:
#!/bin/bash
# irbb.sh
irb
echo "here"
$ ./irbb.sh
>> four = 2 + 2
=> 4
>> exit
here