Bash script เพื่อย้ายไฟล์


11

ฉันเป็นผู้เริ่มต้นและฉันต้องการความช่วยเหลือ

ฉันพยายามสร้างสคริปต์เพื่อย้ายไฟล์บางไฟล์จากไดเรกทอรีหนึ่งไปยังไดเรกทอรีอื่น ก่อนที่จะสร้างสคริปต์ฉันทดสอบคำสั่งและมันทำงาน:

mv /path/to/source  /path/to/destination

หลังจากฉันสร้างสคริปต์ด้วยnano:

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

ฉันสร้างสคริปต์ที่ใช้งานได้กับ: chmod +x file จากนั้นดำเนินการตาม./fileแต่ข้อผิดพลาดต่อไปนี้ปรากฏขึ้น:

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

ฉันพยายามและด้วยsudo ./fileและทุบตีไฟล์ แต่มันไม่ทำงาน

ฉันใช้ Ubuntu ติดตั้งกับ VirtualBox


คุณควรจะดูที่เป็นขั้นสูงทุบตี Scripting คู่มือ
LiveWireBT

คำตอบ:


20

นั่นเป็นเพราะคุณใช้#!bin/bash/และนี่คือสิ่งที่ผิด วิธีที่ถูกต้องคือ:

#!/bin/bash

สิ่งนี้เรียกว่าshebangและมันบอกเชลล์ว่าโปรแกรมใดที่จะตีความสคริปต์เมื่อเรียกใช้งาน

อีกอย่าง: เส้นทางสัมบูรณ์สำหรับ bash interpreter ใน Ubuntu คือ/bin/bashไม่ใช่bin/bash/หรืออย่างอื่น คุณสามารถตรวจสอบได้โดยใช้which bashคำสั่ง

และอีกสิ่งหนึ่ง แต่คุณอาจจะรู้สิ่งนี้: บรรทัดต่อไปนี้:

echo "mv /path/to/source /path/to/destination"

จะแสดงข้อความตัวอักษรด้วยmv /path/to/source /path/to/destinationเท่านั้น ในการย้ายไฟล์จริงๆให้ใช้สคริปต์ต่อไปนี้:

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

นั่นคือลักษณะที่สคริปต์ของคุณควรมีลักษณะ


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