AIと戦って、あなたの人生のリスク診断 >>

rubyスクリプト中からコマンドラインを使いたいのですが、
バッククォートの中に変数を使うことが出来なくて、困っています。
どのようにすればよいでしょうか?

-------------------------------------------------------------
str = "Hello World!"
`echo str`
-------------------------------------------------------------
上記だと、文字列「str」が出力されてしまい、
期待する「Hello World!」の出力が得られません。(変数strが展開されない)

解決方法をご存知の方、何卒、よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

`` に囲まれた中はshellが解釈するので、いきなりRubyの変数名を書いてもshellは展開しません。

shellに渡す前にRubyのレベルで展開する必要があります。

`echo #{str}`
    • good
    • 0
この回答へのお礼

なるほど!解決しました。ありがとうございました!

お礼日時:2007/11/17 01:43

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QrubyでC言語のexitにあたる構文は?

現在、C言語のプログラムをrubyに書き換えています。

そこで、C言語のexitに当たるrubyの構文、もしくは、
文法が見つからず、困ってます。
(ある条件になったら、強制的にrubyの実行を
 停止させたいのですが、、、)
(__END__ですか?)

詳しい方が居ましたら、ご指南下さい。

Aベストアンサー

#2です。
>exit のあとの数字について詳しく知らないので、
>教えていただけたら幸いです。
exitのあとの数字は終了コードといって、どのような状態で、このプログラムが終了したかを、呼び出しもとに伝える為のものです。
この値は、呼び出し元と、呼び出される側(このプログラム)との決め毎なので、どのようにきめてもかまわないのですが、
ふつうは、終了コード:0で終了したときが、正常終了にします。
それ以外の値は、異常終了を示す値にします。

この終了コードは、なにかのサブルーチンを作ったときの、戻り値に似ています。
サブルーチンの戻り値は、呼び出しもとと呼び出される側(サブルーチン側)とで、自由にきめて良いのですが、
通常は、正常:0、以外は、それなりの異常にしますよね。

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。


人気Q&Aランキング