Ordine riga file di testo incasinato nel terminale

0

Stavo scrivendo un semplice script bash per un piccolo compito.

 echo starting
 URL="10.10.0.1/api/monitoring/traffic-statistics"
 curl -b cookie $URL

Quando l'ho eseguito con bash script.sh , stampa solo curl -b cookie pi/monitoring/traffic-statistics . È come se il file dicesse echo curl -b cookie $URL e in qualche modo l'URL fosse corrotto. Quando digito cat script.sh , invece di elencare il contenuto del file, mostra solo una parte di una riga nello script. Nota: stavo modificando il file in vim e lo stava visualizzando senza alcun problema. Anche l'editor Nano ha mostrato lo stesso contenuto. Ma quando si tratta di bash, incasina l'ordine, sia quando si esegue il file o semplicemente si scarica il contenuto. Questo è il dump esadecimale. ( xxd script.sh )

00000000: 6563 686f 2073 7461 7274 696e 670d 5552  echo starting.UR
00000010: 4c3d 2231 302e 3130 2e30 2e31 2f61 7069  L="10.10.0.1/api
00000020: 2f6d 6f6e 6974 6f72 696e 672f 7472 6166  /monitoring/traf
00000030: 6669 632d 7374 6174 6973 7469 6373 220d  fic-statistics".
00000040: 6375 726c 202d 6220 636f 6f6b 6965 2024  curl -b cookie $
00000050: 5552 4c0d                                URL.

Non riesco a trovare alcun carattere di \r dispiaciuto. Cosa ho fatto di sbagliato qui e come posso produrre un file corretto che bash accetterà?

    
posta chamod 10.07.2017 - 10:42
fonte

1 risposta

1

Hai configurato erroneamente il tuo vimrc e un ritorno a capo (CR o 0x0d) invece di un feed di riga (LF o 0x0a) inserito / letto.

Quindi modifica nuovamente vimrc al comportamento standard.

Lo shebang mancante (ad esempio #!/bin/bash ) all'inizio non è la causa dello script non funzionante. Lo includerei comunque - solo per ridondanza.

    
risposta data 10.07.2017 - 11:38
fonte

Leggi altre domande sui tag