• ベストアンサー

変数内のコマンドの実行コマンド文字列の表示

変数内のコマンドの実行コマンド文字列の表示 DIG=`dig ドメイン` として変数内のコマンド実行結果を printf "$DIG\n"と表示させることはできるのですが、 実際に実行したコマンドを表示させることはできますでしょうか。 逆に DIG="dig ドメイン" として文字列をセットすればコマンド内容は表示されますが、 今度はコマンドとして実行させる方法がわかりません。 `$DIG`としてもprintf "$DIG\n"などいろいろ試しましたが わかりません。。 どなたかおわかりでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

文の区切り認識は、変数展開前にされますからそのままでは、全部digコマンドのオペランドと見なされます。 DIGOUT=`eval $DIG`

r-linux
質問者

お礼

遅くなりました! evalさまさま! できましたー どうもでした。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

DIG="dig ドメイン" echo "$DIG" DIGOUT=`$DIG` echo "$DIGOUT" とか

r-linux
質問者

お礼

ありがとうございます。単純にdigるだけならできたのですが、 実際はgrepもしたいのです。 ------------------------------------------------------------ [root@www /]# DIG="dig ドメイン NS |egrep -v '^$|^;' |grep NS |grep -v '^\.'" [root@www /]# DIGOUT=`$DIG` Invalid option: -v Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt} {global-d-opt} host [@local-server] {local-d-opt} [ host [@local-server] {local-d-opt} [...]] Use "dig -h" (or "dig -h | more") for complete list of options ------------------------------------------------------------ 変数に入れてあげられません。 grepの部分と分けてもやりました。 ------------------------------------------------------------ [root@www /]# GREP="egrep -v '^$|^;' |grep NS |grep -v '^\.'" [root@www /]# DIGOUT=`$DIG|$GREP` egrep: |grep: No such file or directory egrep: NS: No such file or directory egrep: |grep: No such file or directory egrep: '^\.': No such file or directory ------------------------------------------------------------ 正規表現とかの問題でしょうか。 DIG="dig ドメイン NS |egrep -v '^$|^;' |grep NS |grep -v '^\.'" このDIGを実行結果と実行コマンドと両方表示させたいのです。 説明不足ですいません。 何かわかりますでしょうか

関連するQ&A