Você deseja substituir $ i em $ip
por sua variável shell? Use aspas duplas
... | sed "$ip" ...
Isso tem certas implicações. Não se aplica aqui , mas você pode ter que escapar de coisas que você não precisaria em aspas simples.
Mas eu também considero reescrever isso, então você não está executando os mesmos comandos n vezes para imprimir as primeiras linhas n (que é o que isso faz). Aqui estão algumas alternativas ...
Usando head
:
maas maas nodes list | grep hostname | cut -d\" -f4 | head -5
Armazenando a saída do comando:
output=$(maas maas nodes list | grep hostname | cut -d\" -f4)
for i in 1 2 3 4 5; do
sed -n "$ip"
done
Criando uma string sed
melhor:
maas maas nodes list | grep hostname | cut -d\" -f4 | sed -n $(printf "%dp;" {1..5})
Role todo o seu código de busca / corte em um awk
:
maas maas nodes list | awk -F'"' '/hostname/ && i<5 {i++; print }'
Eu sou um fetichista awk
, então provavelmente vou pelo último.