- ベストアンサー
変数内のコマンドの実行コマンド文字列の表示
変数内のコマンドの実行コマンド文字列の表示 DIG=`dig ドメイン` として変数内のコマンド実行結果を printf "$DIG\n"と表示させることはできるのですが、 実際に実行したコマンドを表示させることはできますでしょうか。 逆に DIG="dig ドメイン" として文字列をセットすればコマンド内容は表示されますが、 今度はコマンドとして実行させる方法がわかりません。 `$DIG`としてもprintf "$DIG\n"などいろいろ試しましたが わかりません。。 どなたかおわかりでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文の区切り認識は、変数展開前にされますからそのままでは、全部digコマンドのオペランドと見なされます。 DIGOUT=`eval $DIG`
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
DIG="dig ドメイン" echo "$DIG" DIGOUT=`$DIG` echo "$DIGOUT" とか
お礼
ありがとうございます。単純に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を実行結果と実行コマンドと両方表示させたいのです。 説明不足ですいません。 何かわかりますでしょうか
お礼
遅くなりました! evalさまさま! できましたー どうもでした。