プロが教える店舗&オフィスのセキュリティ対策術

Solaris8を使用しています。
nslookupでlsの結果をファイルに出力したい場合、例えば

% nslookup
> ls -d ドメイン名 > 出力ファイル名

とすればいいのはわかりますが、これをシェルで自動化しようと思うとうまくいきません。

シェルスクリプト内に、
---------------------------------------------
nslookup
ls -d ドメイン名 > 出力ファイル名
exit
---------------------------------------------
または、
---------------------------------------------
nslookup > 出力ファイル名
ls -d ドメイン名
exit
---------------------------------------------
としてもうまくいきません。

または対話形式ではなく、nslookupに引数を渡してlsの結果を得ることが可能であれば何とかなると思うのですが・・

もしご存知の方がいらっしゃいましたらご教授お願いします。

A 回答 (2件)

echo -e 'ls -d ドメイン名 > 出力ファイル名\nexit' | nslookup



としてみたらどうだろうか?

 簡単に原理を説明しよう。シェルスクリプト内には、シェルで実行する事を書く。君の方法がうまくいかない理由は、「2行目と3行目はnslookup内で実行する事」だからだ。方法1と方法2で両方同じ理由だ。
 なので、私は、nslookupは標準入力からの入力で2行目3行目を実行するのであるから、パイプや標準入力へのリダイレクトを行えば君のやりたい事が実現できるのではないかと考えた。

 ちなみに私は個人的にSolaris8を所有していないので、Vine Linux 2.6r4で試した。わりかしうまくいった感じよ。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。

上記の方法だとこちらの環境ではうまくいかないです。
echoに"-e"オプションもありませんし・・・
私の提示した例がうまくいかない理屈はわかるのですが・・・

どうもありがとうございました。

お礼日時:2004/12/14 10:09

nslookupではないです。



digならオプション指定で同様の内容を取得出来るはずです。

対話的なコマンドを自動実行させるexpect
も試してはいかがでしょうか?もっと、高度
な処理が可能になるかと思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。

出力結果を整形してファイルに吐きたいので、digよりもnslookupのほうが都合がいいのです。

"expect"はちょっと試してみたいと思います。
どうもありがとうございました。

お礼日時:2004/12/14 10:11

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