Precisa de saída do script bash em uma linha - enrole e produz 2 linhas

1

Estou executando este script bash:

#!/bin/sh
date +"%Y-%m-%d %H:%M:%S " | tr -d 'n' >> /home/test_a5gh/Pub_IP.txt
curl http://checkip.amazonaws.com?newline -s >> /home/test_a5gh/Pub_IP.txt
cat /home/test_a5gh/Pub_IP.txt

Depois de criar o arquivo acima, coloquei-o na pasta /home/test_a5gh/ e depois tornei o script executável:

$ sudo chmod u+x testip.sh

Em seguida, para testar o script, eu corri:

$ ./testip.sh

No entanto, a saída desse comando está sendo produzida em duas linhas. Aqui está um exemplo:

2011-22-33 16:10:27 
111.222.333.444

Eu preciso que a saída apareça em 1 linha, assim:

2011-22-33 16:10:27 111.222.333.444

Informações adicionais:

O script foi retirado de aqui .

Pergunta:

Existe uma maneira de obter essa saída em uma linha?

    
por W R 25.06.2016 / 02:45

1 resposta

2

Aqui está uma maneira:

#!/bin/bash

mydate=$(date '+%Y-%m-%d %H:%M:%S')
myip=$(curl http://checkip.amazonaws.com?newline -s)

printf '%s %s\n' "$mydate" "$myip" >> /home/test_a5gh/Pub_IP.txt

FYI, você não precisa dos arquivos sudo to chmod que possui em seu próprio diretório pessoal.

    
por steeldriver 25.06.2016 / 03:00