Acho que isso deve fazer isso
$ (quem sou eu | cut -d "(" -f2 | cut -d ")" -f1)
printf '\x5eXA\x7eSD30\x5ePR6\x5ePW544\x5eLL0333\x5eML39,989\x5eJM1280,12\x5eID\x5eJUS\x5eXZ\x5eXA\x5eWD\x5eXZ'|nc "$(who am i|cut -d "(" -f2 | cut -d ")" -f1)" 5964
Este comando obtém meu endereço IP:
who am i|cut -d "(" -f2 | cut -d ")" -f1
saída:
10.22.184.126
este comando envia um comando ZPL para 10.22.184.126 na porta 5964:
printf '\x5eXA\x7eSD30\x5ePR6\x5ePW544\x5eLL0333\x5eML39,989\x5eJM1280,12\x5eID\x5eJUS\x5eXZ\x5eXA\x5eWD\x5eXZ'|nc 10.22.184.126 5964
mas se eu substituir 10.22.184.126 por quem sou | cut -d "(" -f2 | cut -d ")" -f1 assim:
printf '\x5eXA\x7eSD30\x5ePR6\x5ePW544\x5eLL0333\x5eML39,989\x5eJM1280,12\x5eID\x5eJUS\x5eXZ\x5eXA\x5eWD\x5eXZ'|nc who am i|cut -d "(" -f2 | cut -d ")" -f1 5964
então eu recebo:
nc: port range not valid
cut: 5964: No such file or directory
Qual é a sintaxe correta para escrever em uma linha?
Acho que isso deve fazer isso
$ (quem sou eu | cut -d "(" -f2 | cut -d ")" -f1)
printf '\x5eXA\x7eSD30\x5ePR6\x5ePW544\x5eLL0333\x5eML39,989\x5eJM1280,12\x5eID\x5eJUS\x5eXZ\x5eXA\x5eWD\x5eXZ'|nc "$(who am i|cut -d "(" -f2 | cut -d ")" -f1)" 5964