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

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

4
อะไรคือความแตกต่างระหว่าง echo `date ', echo“` date'” และ echo '' date ''?
ความแตกต่างระหว่างสามคำสั่งเหล่านี้คืออะไร? echo `date` echo "`date`" echo '`date`' ฉันสับสนในความแตกต่างจริง ๆ ฉันคิดว่าเมื่อ 'อยู่ใกล้ก็หมายความว่ามันเป็นสตริงดังนั้นเสียงก้องจะออกสตริงdateแทนที่จะแสดงวันที่?
23 shell  quoting  echo 

2
รูปแบบสำหรับการส่งข้อความไปยัง sendmail คืออะไร?
ฉันใช้คำสั่งต่อไปนี้เพื่อสร้างข้อความได้ทันทีและส่งพวกเขา: echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com ดูเหมือนว่าเมื่อคุณส่งข้อมูลจากไฟล์โดยทำสิ่งที่ชอบ: sendmail email@example.com mail.txt จากนั้น sendmail จะเห็นแต่ละบรรทัดเป็นส่วนหัวและแยกวิเคราะห์ แต่วิธีที่ฉันส่งไปด้านบนทุกอย่างจบลงในหัวเรื่อง หากต้องการสะท้อนข้อความที่มีส่วนหัวให้เป็น sendmail แล้วรูปแบบคืออะไร เราจะทำอย่างไร
22 shell  email  sendmail  echo 

2
ทำไมพฤติกรรมของ `คำสั่ง 1> file.txt 2> file.txt` ต่างจาก` คำสั่ง 1> file.txt 2> & 1`
เมื่อคุณต้องการเปลี่ยนเส้นทางทั้ง stdout และ stderr ไปยังแฟ้มเดียวกันคุณสามารถทำมันได้โดยการใช้หรือcommand 1>file.txt 2>&1 command &>file.txtแต่ทำไมพฤติกรรมcommand 1>file.txt 2>file.txtต่างไปจากสองคำสั่งข้างต้น? ต่อไปนี้เป็นคำสั่งการตรวจสอบ $ cat redirect.sh #!/bin/bash { echo -e "output\noutput" && echo -e "error" 1>&2; } 1>file.txt 2>&1 { echo -e "output\noutput" && echo -e "error" 1>&2; } 1>file1.txt 2>file1.txt { echo -e "error" 1>&2 && echo -e "output\noutput"; } …

4
ปลอดภัยหรือไม่ที่จะใช้ `เสียงสะท้อน '
การใช้งานevalมักจะหมดกำลังใจเพราะจะทำให้สามารถเรียกใช้รหัสโดยอำเภอใจได้ อย่างไรก็ตามถ้าเราใช้eval echoดูเหมือนว่าส่วนที่เหลือของสตริงจะกลายเป็นข้อโต้แย้งechoดังนั้นมันควรจะปลอดภัย ฉันถูกต้องหรือไม่
20 bash  echo 

3
ทำไม 'echo --help' ไม่ให้หน้าช่วยเหลือของ echo?
ฉันลอง 'man echo' ใน Bash และบอกฉันว่า 'echo --help' จะแสดงความช่วยเหลือจากนั้นก็ออกและในทำนองเดียวกัน 'echo --version' จะออกเวอร์ชั่นและออก แต่ทำไมมันไม่ทำงาน 'echo --help' เพียงพิมพ์ '--help' อย่างแท้จริง
20 bash  shell  echo 

3
หลีกเลี่ยงลำดับด้วย "echo -e" ในกระสุนที่แตกต่างกัน
ฉันเพิ่งสังเกตเห็นว่าดูเหมือนว่าแฟล็ก-eไม่มีอยู่สำหรับechoคำสั่งในเชลล์ของฉันบน Linux นี่เป็นเพียงการตั้งค่าที่สับสนหรือเป็น "ปกติ" หรือไม่ ตัวอย่างรหัสบางส่วน: #!/bin/sh echo -e "\e[3;12r\e[3H" พิมพ์: -e \e[3;12r\e[3H ก่อนหน้านี้ทำงานได้! ฉันเดาว่าsttyคำสั่งบางอย่างผิดพลาดไปอย่างมากและตอนนี้มันไม่ทำงานอีกต่อไป ใครบางคนบอกว่าฉันเป็นจริงเพียงshbash

1
echo [9876543210] แสดง 1 4 5 6 …ทำไม?
โปรดอธิบายว่าทำไม 1 4 5 6 แสดงเป็นคำสั่ง echo สี่ครั้งล่าสุด ฉันตีมันโดยบังเอิญครั้งเดียว แต่ตอนนี้ฉันอยากรู้ว่าทำไมพฤติกรรมนี้เกิดขึ้น ข้อความเหล่านี้ทำงานได้ตามที่คาดไว้ (สำหรับฉัน) $ echo [ 9876543210 ] [ 9876543210 ] $ echo [237890] [237890] ข้อความสะท้อนเหล่านี้แสดงอย่างต่อเนื่อง 1 4 5 6. มีอะไรพิเศษเกี่ยวกับตัวเลขเหล่านี้หรือไม่? $ echo [9876543210] 1 4 5 6 $ echo [abcd9876543210ghi] 1 4 5 6 $ echo [-123456-] 1 4 5 …

2
ผลลัพธ์ที่ไม่คาดคิดทดสอบลูปแบ็คอนุกรมโดยใช้ echo และ cat
ดังนั้นฉันจึงมีพอร์ตอนุกรม RS232 มาตรฐานที่วนกลับมาเองโดยใช้สายจาก Tx ถึง Rx ฉันกำลังทดสอบลูปแบ็คด้วยการรันechoและcatในสองเทอร์มินัลแยกกัน: cat /dev/ttyS1 echo "hi" > /dev/ttyS1 ปัญหาของฉันอยู่กับผลลัพธ์ ฉันคาดหวังว่าจะได้เห็น "สวัสดี" หนึ่งตัวบนแมวที่วิ่งอยู่ แต่กลับได้รับสิ่งนี้: hi [2 newlines] hi [4 newlines] hi [8 newlines] hi [16 newlines] hi [32 newlines] hi ... และอื่น ๆ จนผม+ctrlc cat หลังจากขัดจังหวะแมวถ้าฉันเรียกใช้อีกครั้งมันจะไม่ส่งออก "hi" จนกว่าฉันจะรันเสียงสะท้อนครั้งที่สอง เป็นเรื่องปกติหรือไม่ ความคิดใดที่ว่าทำไมฉันถึงเห็นพฤติกรรมนี้ แก้ไข : โดยการขึ้นบรรทัดใหม่ผมหมายถึง 0x0AASCII ไม่มีการขึ้นบรรทัดใหม่ในเอาต์พุตนี้
18 cat  serial-port  echo 

4
ทำไมเสียงสะท้อนจึงไม่เรียกว่า / bin / sh -c echo foo เอาท์พุทอะไรเลย
ตัวอย่างเช่นขณะที่ใช้งานได้: $ echo foo foo สิ่งนี้ไม่: $ / bin / sh -c echo foo ในขณะที่สิ่งนี้ทำ: $ / bin / sh -c 'echo foo; echo bar ' foo บาร์ มีคำอธิบายไหม?

7
เหตุใดจึงมีความแตกต่างในเวลาดำเนินการของเสียงก้องและแมว?
การตอบคำถามนี้ทำให้ฉันถามคำถามอื่น: ฉันคิดว่าสคริปต์ต่อไปนี้ทำสิ่งเดียวกันและอันที่สองควรเร็วกว่ามากเพราะการใช้ครั้งแรกcatที่ต้องการเปิดไฟล์ซ้ำไปซ้ำมา แต่อย่างที่สองเปิดไฟล์เท่านั้น เพียงครั้งเดียวและเพียงแค่ก้องตัวแปร: (ดูหัวข้อการปรับปรุงสำหรับรหัสที่ถูกต้อง) ครั้งแรก: #!/bin/sh for j in seq 10; do cat input done >> output ประการที่สอง: #!/bin/sh i=`cat input` for j in seq 10; do echo $i done >> output ในขณะที่อินพุตประมาณ 50 เมกะไบต์ แต่เมื่อฉันลองครั้งที่สองมันก็ช้าเกินไปเพราะการสะท้อนตัวแปรiเป็นกระบวนการที่ยิ่งใหญ่ ฉันยังมีปัญหากับสคริปต์ที่สองเช่นขนาดของไฟล์ที่ส่งออกต่ำกว่าที่คาดไว้ ฉันยังตรวจสอบหน้า man ของechoและcatเปรียบเทียบ: echo - แสดงบรรทัดข้อความ cat - เชื่อมไฟล์และพิมพ์บนเอาต์พุตมาตรฐาน แต่ฉันไม่ได้รับความแตกต่าง ดังนั้น: ทำไมแมวถึงเร็วขนาดนี้และเสียงก้องช้าในบทที่สอง? …

6
ต่อท้ายข้อความด้วย echo โดยไม่มีบรรทัดใหม่
echo "abc" >>file.txtฉันต้องการที่จะเพิ่มข้อความลงในไฟล์เช่น แต่นี่เพิ่มabcหลังจากบรรทัดใหม่ ฉันจะเพิ่มabcท้ายไฟล์ด้วย echo โดยไม่มีบรรทัดใหม่ได้อย่างไร

4
echo $ -1 แสดงอะไร
อะไรการส่งออกของecho $-1, echo $-2, echo $-3.. หมายความว่าอย่างไร ในหนึ่งในกล่อง Linux ของฉันมันแสดงให้ฉัน: echo $-1 imsBEl1 echo $-2 imsBEl2 และในอีกกล่อง Linux มันแสดง: echo $-1 himBH1 echo $-2 himBH2 พวกเขากำลังทำแผนที่ไปยังตำแหน่งหน่วยความจำบางอย่างหรืออย่างอื่น?
14 shell  echo  parameter 

6
พิมพ์เอาต์พุตเฉพาะหลังจากค้นหารูปแบบ
มีสคริปต์ (เรียกว่าechoer) ที่พิมพ์หน้าจอเพื่อรวบรวมข้อมูลจำนวนมาก ฉันต้องการเห็นลายเส้นหลังจากพบลวดลาย ฉันนึกภาพการใช้โซลูชันเพื่อให้ดูเหมือน echoer | solution_command <pattern> เป็นการดีที่patternจะเป็นการแสดงออกปกติ แต่สตริงค่ายากจะเพียงพอสำหรับฉัน
13 echo  printf 

4
เป็นไปได้ไหมที่จะพิมพ์เนื้อหาของเนื้อหาของตัวแปรด้วย shell script? (การอ้างอิงทางอ้อม)
สมมุติว่าฉันประกาศตัวแปรต่อไปนี้แล้ว: $ var='$test' $ test="my string" หากฉันพิมพ์เนื้อหาของพวกเขาฉันเห็นดังต่อไปนี้: $ echo $var $test $ echo $test my string ฉันต้องการหาวิธีพิมพ์เนื้อหาของเนื้อหาของ$var(ซึ่งเป็นเนื้อหาของ$test) ดังนั้นฉันจึงพยายามทำสิ่งต่อไปนี้: $ echo $(echo $var) $test แต่นี่คือผลลัพธ์$testและไม่ใช่"my string"... เป็นไปได้หรือไม่ที่จะพิมพ์เนื้อหาของตัวแปรโดยใช้ bash?

3
เหตุใด“ wc -c” จึงพิมพ์ค่าอีกหนึ่งค่าด้วย echo
เมื่อวิ่ง echo abcd | wc -c มันกลับ5มา แต่คำabcdนี้มีความยาวเพียง 4 ตัวอักษร กำลังechoพิมพ์ตัวละครพิเศษหลังจากคำว่าabcd? และฉันสามารถป้องกันไม่ให้echoพิมพ์ได้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.