Score:0

สคริปต์ทุบตีสำหรับการย้ายไฟล์ตามอินพุตของผู้ใช้

ธง vn

ฉันยังใหม่กับ Bash และการเขียนโค้ดโดยทั่วไป และจะไม่โกหก ฉันต้องการความช่วยเหลือสำหรับงานบ้านที่ต้องทำสคริปต์ที่ขอชื่อไฟล์จากผู้ใช้ จากนั้นจึงย้ายไปยังตำแหน่งที่กำหนด

ฉันถือว่าสคริปต์สำหรับการย้ายไฟล์จริง ๆ จะเป็น

#!/bin/bash
mv /path/to/source /path/to/destination.mv

แต่ฉันจะใช้สิ่งนี้ได้อย่างไรเมื่อขอให้ผู้ใช้ป้อนชื่อไฟล์ที่ต้องการย้ายและตำแหน่งที่ต้องการย้าย

ฉันใช้ Ubuntu ที่ติดตั้ง VirtualBox

Tyberius avatar
us flag
บทช่วยสอนที่เกี่ยวข้อง: https://ryanstutorials.net/bash-scripting-tutorial/bash-input.php
Score:2
ธง in
Cas

โดยพื้นฐานแล้วสคริปต์จะขอเส้นทางของไฟล์และโฟลเดอร์ที่จะใส่ไฟล์:

#!/bin/bash

#ตั้งค่าตัวแปร "file" เป็นค่าว่าง
ยกเลิกการตั้งค่าไฟล์

#ถามต่อไปจนกว่า (= จนกว่าลูป) ตัวแปรจะเต็มไปด้วยเส้นทางไปยังไฟล์
จนกระทั่ง [[ -f "$file" ]]
ทำ
        # ขอให้ผู้ใช้ป้อนไฟล์และบันทึกสิ่งที่ป้อนในตัวแปร "ไฟล์"
        อ่าน -rp "โปรดระบุเส้นทางไปยังไฟล์: " ไฟล์
เสร็จแล้ว

#ตอนนี้ทำเช่นเดียวกันกับโฟลเดอร์ปลายทาง แต่ถามต่อไปจนกว่าสตริงที่ป้อนจะเป็นโฟลเดอร์ที่ถูกต้องที่มีอยู่
ยกเลิกการตั้งค่าโฟลเดอร์
จนกระทั่ง [[ -d "$folder" ]]
ทำ
        อ่าน -rp "โปรดระบุเส้นทางไปยังโฟลเดอร์เพื่อใส่ไฟล์ใน:" โฟลเดอร์
เสร็จแล้ว

#ตอนนี้ตัวแปร "ไฟล์" และ "โฟลเดอร์" ถูกเติมด้วยพาธที่ถูกต้อง ดังนั้นให้ย้ายไฟล์
mv "$file" "$folder" \ #the "\" หมายถึง "ไปยังบรรทัดถัดไปแต่ถือว่ามันเป็นบรรทัดใหญ่"; ง่ายต่อการอ่าน
&& echo "ย้าย $file ไปยัง $folder" \ #เรียกใช้สิ่งนี้เมื่อคำสั่ง mv สำเร็จ (เนื่องจาก &&)
|| echo "ไม่สามารถย้าย $file ไปยัง $folder" #รันสิ่งนี้เมื่อคำสั่ง mv ล้มเหลว (เนื่องจาก ||)
WinEunuuchs2Unix avatar
in flag
คุณสามารถเพิ่มข้อความว่าไฟล์ต้นฉบับไม่มีอยู่ คุณสามารถเพิ่มคำเตือนว่ามีปลายทางอยู่แล้วและจะถูกเขียนทับ ยังคง +1 สำหรับสคริปต์ที่ดี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา