0

シェルスクリプトから入力irbして何かを実行してから、シェルスクリプトに戻ろうとしています。

これどうやってするの?

#!/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ライブラリとやり取りしていて、同じ哲学を取り入れて、これについて2度考えずに自動化しようとしました。

4

2 に答える 2

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

対話する予定がない場合は、対話型シェルを生成する必要はありません。

于 2012-05-02T19:52:47.053 に答える
0

基本的に、bashのforkとexecから答えを説明してほしいと思います 。

function_to_fork(){irb}

function_to_fork&

親プロセスに影響を与える相互作用が必要な場合、または親プロセスが待機する場合は、これが機能しない可能性があります。

以下の私のコメントはあまりうまくフォーマットされていませんでした:

次のプログラムで私は達成することができました:

#!/bin/bash
# irbb.sh
irb
echo "here"

$ ./irbb.sh 
>> four = 2 + 2
=> 4
>> exit
here
于 2012-05-02T19:26:48.953 に答える