Score:-1

Shell Script แสดงข้อผิดพลาด "สิ้นสุดไฟล์โดยไม่คาดคิด"

ธง ar

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

#!/bin/bash
cat .ramv &> /dev/null
ถ้า [[ $? = "1" ]]; แล้ว
    ไดอะล็อก --yesno "ฉันตรวจพบว่าคุณไม่เคยใช้โปรแกรมนี้มาก่อน คุณต้องการติดตั้ง ramdisk และติดตั้งแพ็คเกจที่จำเป็นหรือไม่" 24 80
อื่น
ถ้า [[ $? = "0" ]]; แล้ว
หาง --lines=+27 ~/ramv.sh | ทุบตี 
ไฟ
ไฟ
ถ้า [[ $? = "1" ]]; แล้ว
    ไดอะล็อก --msgbox "คำสั่งนี้จะไม่ทำงานหากคุณไม่ติดตั้งแพ็คเกจและ ramdisk" 24 80
อื่น
ถ้า 
    ไดอะล็อก --yesno "ขนาด ramdisk เริ่มต้นที่ 2GB คุณมี RAM รวมมากกว่า 4GB หรือไม่" 24 80
    ถ้า [[ $? = "1" ]]; แล้ว
    ไดอะล็อก --msgbox "คำสั่งนี้จะไม่ทำงานหากคุณมี RAM ไม่เกิน 4GB" 24 80
    อื่น
    กล่องโต้ตอบ --msgbox "ฉันต้องการการเข้าถึงรูทเพื่อให้สิ่งนี้ใช้งานได้ คุณช่วยกรุณาป้อนรหัสผ่านรูทของคุณได้ไหม" 24 80
    sudo dialog --msgbox "ขอบคุณ ตอนนี้เราสามารถเริ่มต้นด้วยการสร้าง ramdisk" 24 80
    sudo mkdir /mnt/tmp
    sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp
    เสียงสะท้อน sudo "
tmpfs /mnt/tmp tmpfs rw,size=2G 0 0" >> /etc/fstab
ไดอะล็อก --msgbox "การตั้งค่าเสร็จสมบูรณ์ ไฟล์วิธีใช้ถูกเขียนไปยังโฟลเดอร์เริ่มต้นของคุณแล้ว" 24 80
สัมผัส .ramv
ไฟ
mv $1 /mnt/tmp
mv /mnt/tmp/$1 $2

ข้อผิดพลาดแสดงอยู่ด้านล่าง

eli@eli-desktop:~$ ./ramv.sh
./ramv.sh: บรรทัดที่ 29: ข้อผิดพลาดทางไวยากรณ์: จุดสิ้นสุดของไฟล์ที่ไม่คาดคิด
eli@eli-desktop:~$ 

ใครสามารถแสดงให้ฉันเห็นว่าทำไมข้อผิดพลาดนี้จึงเกิดขึ้นและจะแก้ไขได้อย่างไร

hr flag
ฉันนับ 5 "if" และ 3 "fi" เท่านั้น - ฉันขอแนะนำให้เริ่มต้นด้วยการเยื้องรหัสของคุณอย่างสม่ำเสมอ ซึ่งจะช่วยให้คุณทราบว่าต้องไปที่ใด
FedKad avatar
cn flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [รู้ว่าเชลล์สคริปต์มีข้อผิดพลาดทางไวยากรณ์หรือไม่โดยไม่ต้องเรียกใช้สคริปต์](https://askubuntu.com/questions/482687/know-whether-the-shell-script-contains-syntax-error-without-running-the-script ) ดูคำตอบที่สอง!
waltinator avatar
it flag
วางสคริปต์ของคุณใน `https://shellcheck.net` ซึ่งเป็นตัวตรวจสอบไวยากรณ์เสมอ หรือติดตั้ง `shellcheck` ในเครื่อง ใช้ 'shellcheck' เป็นส่วนหนึ่งของกระบวนการพัฒนาของคุณ
Hannu avatar
ca flag
`sudo เสียงก้อง "`
Eli Thrash avatar
ar flag
เมื่อฉันเพิ่ม fi มันบอกว่า `./ramv.sh: บรรทัด 27: ข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็น 'fi' ที่ไม่คาดคิด ` `./ramv.sh: บรรทัดที่ 27: fi' `
Eli Thrash avatar
ar flag
ตอนนี้ใช้งานได้ แต่ฉันจะทำให้ข้ามคำสั่งโต้ตอบหลังจากตั้งค่าได้อย่างไร

โพสต์คำตอบ

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