Điểm:-1

Shell Script đưa ra lỗi "kết thúc tệp không mong muốn"

lá cờ ar

Tôi đã làm việc với tập lệnh này được một thời gian. Nhưng tôi đã gặp lỗi. Tập lệnh được cho là sử dụng tmpfs để chuyển nhanh các tệp từ điểm A đến điểm B. Kịch bản được hiển thị bên dưới.

#!/bin/bash
con mèo .ramv &> /dev/null
nếu [[ $? = "1" ]]; sau đó
    hộp thoại --yesno "Tôi phát hiện ra rằng bạn chưa sử dụng chương trình này trước đây. Bạn có muốn thiết lập đĩa ram và cài đặt các gói cần thiết không?" 24 80
khác
nếu [[ $? = "0" ]]; sau đó
đuôi --lines=+27 ~/ramv.sh | đánh đập 
fi
fi
nếu [[ $? = "1" ]]; sau đó
    hộp thoại --msgbox "Lệnh này sẽ không hoạt động nếu bạn không cài đặt các gói và đĩa ram." 24 80
khác
nếu 
    hộp thoại --yesno "Kích thước đĩa RAM mặc định là 2GB. Bạn có tổng cộng hơn 4GB RAM không?" 24 80
    nếu [[ $? = "1" ]]; sau đó
    hộp thoại --msgbox "Lệnh này sẽ không hoạt động nếu bạn không có nhiều hơn 4GB RAM" 24 80
    khác
    hộp thoại --msgbox "Tôi cần quyền truy cập gốc để tính năng này hoạt động. Bạn có thể vui lòng nhập mật khẩu gốc của mình không?" 24 80
    hộp thoại sudo --msgbox "Cảm ơn! Bây giờ chúng ta có thể bắt đầu tạo ramdisk" 24 80
    sudo mkdir /mnt/tmp
    Sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp
    sudo vang "
tmpfs /mnt/tmp tmpfs rw,size=2G 0 0" >> /etc/fstab
hộp thoại --msgbox "Thiết lập đã hoàn tất. Tệp trợ giúp đã được ghi vào thư mục chính của bạn." 24 80
chạm vào .ramv
fi
mv $1 /mnt/tmp
mv /mnt/tmp/$1 $2

Lỗi được hiển thị bên dưới

eli@eli-desktop:~$ ./ramv.sh
./ramv.sh: dòng 29: lỗi cú pháp: kết thúc tệp không mong muốn
eli@eli-desktop:~$ 

Ai đó có thể chỉ cho tôi tại sao lỗi này xảy ra và cách khắc phục không?

lá cờ hr
Chà, tôi đếm được 5 chữ "nếu" và chỉ có 3 chữ "fi" - Tôi khuyên bạn nên bắt đầu bằng cách thụt lề mã của bạn một cách nhất quán, điều đó sẽ giúp bạn tìm ra nơi cần đặt những mã còn thiếu
FedKad avatar
lá cờ cn
Điều này có trả lời câu hỏi của bạn không? [Biết tập lệnh shell có lỗi cú pháp hay không mà không cần chạy tập lệnh](https://askubuntu.com/questions/482687/know-whether-the-shell-script-contains-syntax-error-without-running-the-script ) Xem câu trả lời thứ hai!
waltinator avatar
lá cờ it
Luôn dán tập lệnh của bạn vào `https://shellcheck.net`, trình kiểm tra cú pháp hoặc cài đặt `shellcheck` cục bộ. Hãy biến việc sử dụng `shellcheck` thành một phần trong quy trình phát triển của bạn.
Hannu avatar
lá cờ ca
`tiếng vang sudo "`
Eli Thrash avatar
lá cờ ar
Khi tôi thêm nhiều fi, nó báo `./ramv.sh: dòng 27: lỗi cú pháp gần mã thông báo không mong muốn 'fi' ` `./ramv.sh: dòng 27: fi' `
Eli Thrash avatar
lá cờ ar
bây giờ nó hoạt động. Nhưng làm thế nào để tôi làm cho nó bỏ qua các lệnh hộp thoại sau khi thiết lập?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.