GNU/Linux >> Belajar Linux >  >> Linux

Teks Gema Setelah Perintah Curl Pada Baris Yang Sama?

#!/bin/bash
echo "$(curl -s -I https://google.com|grep Server)" abc

kembali:

abcer: gws

dan bash -x menunjukkan:

++ grep Server
++ curl -s -I https://google.com
' abco 'Server: gws
 abcer: gws

tapi

echo abc "$(curl -s -I https://google.com|grep Server)"` 

kembali

abc Server: gws

Dengan kata lain, jika saya menambahkan teks SETELAH perintah curl, itu akan rusak, tapi tidak apa-apa jika saya menambahkannya sebelum curl.
Apa yang terjadi? Saya tidak bisa mengetahuinya.

Jawaban yang Diterima:

echo $(curl -s -I https://google.com|grep Server)|cat -A

menunjukkan bahwa nilai yang dikembalikan oleh curl memiliki ^M (carriage return). Saat Anda mencetak output dari curl, carriage return membawa 'kursor' kembali ke awal baris, di mana ia kemudian mencetak 'abc', menimpa 'Serv'.

Dalam upaya kedua Anda, carriage return tidak memiliki efek yang jelas.


Linux
  1. Unduh file melalui baris perintah di Linux

  2. Menghasilkan hash SHA-256 dari baris perintah Linux

  3. Unduhan paralel menggunakan utilitas baris perintah Curl

  1. Memanipulasi teks pada baris perintah dengan sed

  2. Apakah Shell Portabel Untuk Menjalankan Perintah Pada Baris Yang Sama Setelah Penetapan Variabel?

  3. Tambahkan jeda baris ke keluaran perintah

  1. Bash Echo Baris Perintah Dieksekusi Di Baris Perintah Itu Sendiri (bukan Dalam Script)?

  2. Jalankan Perintah Sudo, Menentukan Kata Sandi Pada Baris yang Sama?

  3. Bagaimana Mengurai Setiap Baris File Teks Sebagai Argumen Untuk Perintah?