ไม่พบไฟล์สคริปต์ Bash


1

ฉันมีสคริปต์ต่อไปนี้:

for i in {1..16}; do
$wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

บันทึกไฟล์เป็น test.sh และเรียกใช้ภายใน Git บน windows

ไฟล์ต่าง ๆ อยู่บนเซิร์ฟเวอร์ แต่เมื่อฉันเรียกใช้สคริปต์ฉันได้รับ "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ...

คิด?

คำตอบ:


1

สคริปต์ของคุณถูกต้องอย่างยิ่งถ้าไม่ใช่สำหรับตัวละคร $ ที่คุณต้องลบและสำหรับชื่อไฟล์ที่คุณต้องทำซ้ำ

for i in {1..16}; do
   wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/$i.jpg
done

ตัวเลือกแน่นอน -O ขอให้เขียนชื่อไฟล์ไม่ใช่ไดเรกทอรี

ไฟล์ -O
--output เอกสาร = ไฟล์
เอกสารจะไม่ถูกเขียนลงในไฟล์ที่เหมาะสม แต่ทั้งหมดจะถูกรวมเข้าด้วยกันและเขียนลงในไฟล์

บางคำเพิ่มเติม
ในรุ่นของคุณ $wget เป็นตัวแปรที่ไม่ได้รับมอบหมายและว่างเปล่า
ผลลัพธ์ของคำสั่งภายในวงรอบจะกลายเป็นตัวอย่างเช่น

http://url/1.jpg -O C:/Users/User/Desktop/Test/

เป็นไฟล์ที่ไม่มีอยู่ใน HDD ของคุณ

เพื่อตรวจสอบข้อผิดพลาดประเภทนี้คุณสามารถเพิ่ม echo ในบรรทัดและดูผลลัพธ์ที่เกิดจากวงจรของคุณ:

for i in {1..16}; do
   echo $wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

มันจะเปิดเผยปัญหา / ความผิดพลาดของคุณ


ขอบคุณ! ทำให้ฉันอ่านรหัสอีกครั้งและตระหนักถึงความผิดพลาดของฉัน
tackdetack

0

ไดเรกทอรี -P ของฉันไม่ได้ถูกสร้างขึ้นดังนั้น wget จึงไม่มีที่สำหรับดาวน์โหลดไฟล์

จำเป็นต้องเปลี่ยน -O เป็น -P เพิ่ม "" สำหรับตำแหน่งไดเรกทอรี

ตอนนี้ใช้งานได้แล้ว

 for i in {1..16}; do
 wget http://url/$i.jpg -P "C:/Users/user/Desktop/Test"
 done

จำเป็นต้องมีเพื่อให้แน่ใจว่าการจัดรูปแบบถูกต้องใน Notepad ++ เปลี่ยน EOL Conversion จาก windows เป็น Unix

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