Espaço de impressão entre cadeias

0
#!/bin/bash

ARRAY="185.18.207.66 31.18.212.113"

result=""

for i in $ARRAY
do  
    result=$(printf '%s %s' "$result" "$i" "checked")
done

paste <(printf "%s\n" $result)

Estou tentando imprimir endereços IP, mas adicionando "checked" frase para cada endereço IP.

Mas não consigo imprimir um espaço entre IP e "checked" frase

O código acima é impresso:

185.18.207.66checked
31.18.212.113checked

Como posso fazer isso para imprimir como abaixo?

185.18.207.66 checked
31.18.212.113 checked 
    
por NecNecco 05.04.2016 / 11:21

1 resposta

2

Existem muitas coisas para melhorar com o seu script antes de o fazer corretamente:

  • Falta de aspas duplas
  • Gerando comandos externos desnecessários.

Apenas usando uma matriz:

#!/bin/bash

ARRAY=(185.18.207.66 31.18.212.113)
printf '%s checked\n' "${ARRAY[@]}"

ou usando "$@" para torná-lo POSIXly:

#!/bin/sh

set -- 185.18.207.66 31.18.212.113

printf '%s checked\n' "$@"
    
por 05.04.2016 / 11:28