岩崎と申します。
バッククォート(`)で囲まれた文字列の扱いで不明な点がありますので
教えてください。
== 環境 Windows NT4 SP6
ruby -v
ruby 1.8.0 (2003-08-04) [i386-mswin32]
== やりたいこと
windowsのnet useコマンドを実行する
cmd.exe上では以下のような使い方をします。
net use \\foo\common #接続
net use \\foo\common /delete #切断
fooはサーバ名commonは共有名です。
サーバ名の前には\\を前置し、共有名との間は\を1つおきます。
== テストコード
system("net use \\\\foo\\common")
system("net use \\\\foo\\common /delete") #1 ok
system("net use \\\\foo\\common")
`net use \\\\foo\\common /delete` #2 ng
system("net use \\\\foo\\common")
a="net use \\\\foo\\common /delete"
`#{a}` #3 ok
==質問
「テストコードの2がなぜ失敗するのか」です。
2と3は基本的に同じと思っているので失敗する理由が
分かりません。また、1も返り値を除いて2と同じと
思っているのですが、その辺りの解釈にも間違いが
あればご指摘ください。
以上宜しくお願いします。