คำถามติดแท็ก echo

คำถามเกี่ยวกับเชลล์บิวด์อินหรือ `/ bin / echo` ไม่ควรใช้แท็กนี้หากคำถามของคุณเกี่ยวกับการพิมพ์ไปยังเครื่องเทอร์มินัลให้ใช้เฉพาะเมื่อคำถามของคุณเฉพาะกับคำสั่ง `echo`

6
สิ่งที่ตรงกันข้ามของ echo -e?
หากฉันมีสตริงที่มีอักขระที่ไม่สามารถechoพิมพ์ได้บรรทัดใหม่หรือแท็บมีวิธีที่ฉันสามารถใช้พิมพ์สตริงนี้และแสดงรหัสสำหรับอักขระเหล่านี้ (เช่น\nสำหรับบรรทัดใหม่\bสำหรับ backspace) หรือไม่
13 shell  echo 

7
ประทับเวลาก่อนเสียงสะท้อน
มีวิธีที่ดีกว่าในการสร้างการประทับเวลาต่อหน้าecho? ขณะนี้ฉันทำเช่นนี้: #!/bin/sh if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device already mounted" else echo `date +%R\ ` "mounting usb device..." mount -t msdosfs /dev/da0s1 /mnt/usb if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device successfully mounted" fi fi ผลลัพธ์ควรมีลักษณะดังนี้: 10:36 …
12 shell  timestamps  echo 

2
เป็นอันตรายหรือไม่หากใช้เสียงสะท้อน
ฉันเคยเห็นหัวข้อที่คล้ายกันสองสามข้อ แต่พวกเขาอ้างถึงไม่ได้อ้างอิงตัวแปรซึ่งฉันรู้ว่าอาจนำไปสู่ผลลัพธ์ที่ไม่พึงประสงค์ ฉันเห็นรหัสนี้และสงสัยว่าถ้าเป็นไปได้ที่จะฉีดบางสิ่งให้ทำงานเมื่อบรรทัดของรหัสนี้ทำงาน: echo run after_bundle
11 shell  security  quoting  echo 

1
ทำไมเสียงก้องจับคู่ไฟล์บางไฟล์สองครั้ง?
$ touch file{1..12} $ echo *e{1..12} file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 file11 file12 $ echo *{1..12} file1 file11 file12 file2 file3 file4 file5 file6 file7 file8 file9 file10 file11 file12 ฉันไม่เข้าใจว่าทำไมสิ่งนี้จึงเกิดขึ้น กรุณาช่วยอธิบายหน่อยได้ไหม

2
ยกมาเทียบกับการขยายตัวสตริงที่ไม่ได้ยกมา
for i in $(xrandr); do echo "$i" ; done for i in "$(xrandr)"; do echo "$i"; done for i in "$(xrandr)"; do echo $i; done ฉันเข้าใจว่าทำไม 1 แตกต่างจาก 2 แต่เหตุใด 3 จึงให้ผลลัพธ์ที่แตกต่างจาก 2 โปรดอธิบายผลลัพธ์ด้วย คำพูดทำงานอย่างไรกับการขึ้นบรรทัดใหม่

3
ใน Bash จะไม่รวมอาร์กิวเมนต์พิเศษในนามแฝงได้อย่างไร
ฉันพยายามทำบางสิ่งเช่น alias ftp='echo do not use ftp. Use sftp instead.' เพียงเพื่อที่ftpจะไม่ถูกใช้โดยไม่ได้ตั้งใจ แต่ฉันสังเกตเห็นว่า ftp abcd.com จะทำให้คำสั่งดังก้อง do not use ftp. Use sftp instead. abcd.com เพราะจะนำไปเป็นข้อโต้แย้งสำหรับabcd.comecho มีวิธีที่จะทำให้ Bash ไม่ได้เพิ่มabcd.comการทดแทนหรือechoไม่ใช้มันเป็นอาร์กิวเมนต์พิเศษหรือไม่? (มีวิธีแก้ปัญหาสำหรับแต่ละวิธีหรือไม่) ฉันคิดว่าฉันสามารถทำได้ alias ftp='sftp' ftpแต่ฉันเพียงแค่ต้องการให้หยุดคำสั่งทั้งหมดเข้าด้วยกันเพื่อเตือนตัวเองไม่ให้ใช้
10 bash  alias  ftp  echo 

1
Carriage return ด้วยคำสั่ง echo
ฉันกำลังฝึกคำสั่ง echo พร้อมตัวเลือก\r(carriage return) ดังต่อไปนี้ echo -e "This is \r my college" เอาท์พุท: my college แต่เมื่อฉันเพิ่มอีกหนึ่งคำก่อนหน้า\rนี้เป็นด้านล่าง echo -e "This is the \r my college" จากนั้นให้ฉันเอาท์พุทเช่น: my college the ตัวอย่างอื่น echo -e "This is \r valid data" valid data echo -e "This is not a \r valid data" valid data a …
9 shell  echo  newlines 

2
อะไรคือความแตกต่างระหว่าง $ 'string' ที่ยกมาเดี่ยวกับ $“ string” ที่เสนอในการทุบตี?
ฉันพยายามรันบรรทัดใหม่โดยใช้echoและลองทำตามสองคำสั่ง: คำสั่งแรก: echo $'Hello World\nThis is a new line' การตอบสนอง: Hello World This is a new line คำสั่งที่สอง: echo $"Hello World\nThis is a new line" การตอบสนอง: Hello World\nThis is a new line คำถามของฉันคือสิ่งที่แตกต่างระหว่างสตริงห่อด้วย$' 'VS สตริงห่อด้วย$" "ในbash's echo?
9 bash  quoting  echo 

1
ทำไมไม่มีบรรทัดใหม่ในตอนท้ายของการอ้างถึง subshell และส่งผ่านผลลัพธ์เพื่อ echo
เมื่อฉันทำls | grep pngผลลัพธ์ของ grep คือ: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ชื่อไฟล์ขึ้นบรรทัดใหม่ชื่อไฟล์ขึ้นบรรทัดใหม่) ดังนั้นecho $(ls | grep png)ผลลัพธ์: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ชื่อไฟล์, ช่องว่างจากการแยกคำ, ชื่อไฟล์, บรรทัดใหม่ !! จาก echo !!) นั่นคือทั้งหมดที่ตกลง แต่เมื่อฉันทำเช่นนี้เพื่อป้องกันการแยกคำ: echo "$(ls | grep png)"ออกเป็น: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png และคำถามของฉันคือขึ้นบรรทัดใหม่ที่สอง (หนึ่งควรมาจาก grep และหนึ่งจาก echo)

3
วิธีการหยุด `grep 'จากการตัดทอนเอาต์พุตท่อ
มีวิธีใดที่จะมีechoที่ส่วนท้ายของไพพ์เพียงต่อท้ายเอาต์พุตปัจจุบันแทนที่จะลบทั้งหมดหรือไม่? ตัวอย่างเช่นฉันจะเก็บเอาท์พุทของฉันcatและgrepและเพิ่ม "END OF OUTPUT" ในตอนท้ายของเอาต์พุตจากไพพ์เดียวกันได้อย่างไร: $ cat file.txt | grep 'foo' | echo "END OF OUTPUT" something foo foo foo something END OF OUTPUT คล้ายกับวิธีการcat -ทำงาน: echo "START OF OUTPUT" | cat - file.txt
2 bash  pipe  echo 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.