8

hostname.localdomainを取得するために使用しているコマンドがあります。

dig axfr @dc1.localdomain.com localdomain.com | grep -i Lawler | awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }'

これにより、次のような結果が返されます。

michael.lawler.localdomain.com

その結果をBashスクリプトの変数としてさらに使用したいと思います。

最初のパイプを通り抜けるのに苦労しているようです。

もし私がVAR="dig axfr @dc1.localdomain.com localdomain.com | grep -i Lawler | awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }'"

...ゾーン転送全体を取り戻します。また、コマンドの$前に引用符なしで追加するなど、多くの小さな変更を試しましたが、何も機能しないようです。digどうすればこれを修正できますか?

4

2 に答える 2

8
VAR=$( dig axfr @dc1.localdomain.com localdomain.com |
     grep -i Lawler |
     awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }' )
于 2013-03-06T19:25:29.200 に答える
2

引用符の代わりにバックティックを使用します。

VAR=`dig axfr @dc1.localdomain.com localdomain.com | grep -i Lawler | awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }'`

Backticsは、実際には「ここにあるものをすべて実行し、式の値として標準を返す」ことを意味しますが、引用符はそれを行いません。

于 2013-03-06T19:23:57.120 に答える