У меня есть команда, я использую, чтобы Получить hostname.localdomainBash переменная из команды с трубами, котировки и т.д.
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 }'"
... я получить обратно всю передачу зоны. Я также пробовал много мелких изменений, добавляя $
перед командой без кавычек, ничего не работает. Любое направление очень ценится.
Если ваша цель - сохранить команду для ее запуска более одного раза, см. Http://mywiki.wooledge.org/BashFAQ/050 («Я пытаюсь добавить команду в переменную, но сложные случаи всегда терпят неудачу! »). Если ваша цель состоит только в том, чтобы сохранить результат, 'var = $ (команда)' –
FYI - вы можете, возможно, попросить 'dig' дать вам меньше информации, чтобы облегчить анализ вывода. См., Например, опцию '+ short'. –
@CharlesDuffy 'awk '{getline; $ 1 = зиЬзЬг ($ 1,1, длина ($ 1) -1); распечатать $ 1; exit} ''делает то, что мне нужно,' + short' на самом деле не работает для моей ситуации, не знаю, почему ... возможно, из-за OSX. Спасибо за предложение. – TryTryAgain