全開示:私は本当にRubyを知らない。私はほとんどそれを偽っている。Rubyは私の変数をコメントとして扱っています
私はMacを束ねるために使用しているキャスパーの在庫を収集するために使用したいスクリプトがあります。私は%x
でシェルコマンドに変数を渡そうとしています。問題は、Rubyがその変数をコメントとして扱っていることです。ここに関連するコードは次のとおりです。
def get_host
host=%x(/usr/sbin/dsconfigad -show | /usr/bin/awk '/Computer Account/ {print $4}').chomp
raise Error, "this machine must not be bound to AD.\n try again." if host == nil
end
def get_ou
host = get_host
dsout = %x(/usr/bin/dscl /Search -read /Computers/#{host}).to_a
ou = dsout.select {|item| item =~ /OU=/}.to_s.split(",")[1].to_s.gsub(/OU=/, '').chomp
end
は、私が代わりに%x
のダニバック使ってみましたが、同じ結果を得ました。このコマンドは、実行されているホストに関する情報を返すべきですが、代わりにという結果を返します。dscl /Search -read /Computers
です。
私は何をしたいのですか?
'get_host'は空の文字列を返していませんか?私のMac上の 'get_host'メソッド内でコードを実行すると私は' '' '(与えられたマシンはドメインの一部ではありませんが、エラーを出すのではなく空文字列を返します) –
ああ、さて、AD上にあるMac上で実行し、そのメソッドに 'puts#{host}'を追加すると、ホストのADホスト名が返されます。だから私はかなりうまくいくとは思うが、なぜそこにエラーがないのか知ることはいいだろう。 –