รับผลลัพธ์ wget ไปยังตัวแปร


14

ฉันจะทำมันได้อย่างไร ฉันพยายามแบบนี้ RESULT = `wget $ URL`

PS - แหล่งข้อมูลใดที่แนะนำสำหรับการเรียนรู้การเขียนสคริปต์เชลล์

คำตอบ:


22

เกี่ยวกับ:

RESULT="`wget -qO- http://example.com`"
echo $RESULT

แก้ไข: ใช่แล้วมันใช้งานได้


2
ทำไมรีบอีกครั้งหลังจากที่-qO?
Ashfame

2
Oบอกให้เอาท์พุทที่ไหนสักแห่ง-บอกOให้ส่งออกไปยังกระแสปัจจุบัน และqบอกว่าจะไม่รวมข้อมูล "กำลังเชื่อมต่อกับ xxx ... " ใด ๆ
Oli

สิ่งที่ฉันหมายถึงคือเมื่อไร-qที่สวิตช์เงียบ & -Oใช้สำหรับตั้งชื่อไฟล์ที่เราต้องการบันทึกผลลัพธ์ จากสิ่งที่ฉันได้อ่านเราสามารถเขียนสวิตช์หลาย ๆ ตัวพร้อมกันได้หากพวกเขาทั้งหมดไม่ต้องการอาร์กิวเมนต์ ดังนั้นจึง-qOสมเหตุสมผล แต่แล้วขีดสุดท้ายคืออะไร
Ashfame

1
มันเป็น-Oข้อโต้แย้ง มันบอกว่าจะเขียนผลลัพธ์ของการดาวน์โหลด (ในกรณีนี้: กลับไปที่กระแสปัจจุบัน)
Oli

24

วิธีที่ต้องการจะเป็น

result=$(wget -qO- http://example.com)
echo "$result"

(ชื่อตัวแปรตัวพิมพ์เล็ก$()แทน``และการขยายที่ยกมาของตัวแปรผลลัพธ์)

สำหรับการเขียนสคริปต์เชลล์ด้วย bash และ / หรือ POSIX sh, http://mywiki.wooledge.org/BashGuideเป็นแนวทางในการอ่าน และมีทรัพยากรจำนวนมากที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับวิกิพีเดียที่และในhttp://wiki.bash-hackers.org/ ฉันเกรงว่าทรัพยากรอื่น ๆ ส่วนใหญ่ในการเขียนสคริปต์เชลล์เป็นขยะดังนั้นจึงเป็นการดีที่สุดที่จะติดกับทั้งสอง


ขอบคุณสำหรับข้อมูลของคุณ! คุณช่วยอธิบายหน่อยได้มั้ยว่ามีอะไรผิดปกติกับราคาที่นี่?
Ashfame

@Ashfame นี่จะอธิบายเหตุผลหลักว่าทำไมคุณควรอ้างอิงการขยาย: mywiki.wooledge.org/Arguments
geirha

ขอบคุณ! ฉันได้ทำบุ๊กมาร์กทรัพยากร ฉันจะเรียนรู้จากที่นั่น :)
Ashfame

ทำไมทรัพยากรอื่น ๆ ส่วนใหญ่ในเชลล์สคริปต์ขยะ?
Big McLargeHuge

@ Koveras ฉันจะรู้ได้อย่างไร? ผู้คนอาจอ่านคู่มือ ABS แล้วตัดสินใจว่าพวกเขาจะแบ่งปันความรู้ที่ค้นพบใหม่กับโลกด้วยการกวดวิชาเส็งเคร็งอื่น
geirha

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