Puncte:-1

Scriptul Shell afișează eroarea „sfârșitul neașteptat al fișierului”

drapel ar

Lucrez la acest script de ceva timp. Dar am primit erori. Scriptul ar trebui să folosească tmpfs pentru a transfera rapid fișiere din punctul A în punctul B. Scriptul este prezentat mai jos.

#!/bin/bash
cat .ramv &> /dev/null
dacă [[ $? = "1" ]]; atunci
    dialog --yesno "Am detectat că nu ați mai folosit acest program înainte. Doriți să setați discul ram și să instalați pachetele necesare?" 24 80
altfel
dacă [[ $? = "0" ]]; atunci
coada --linii=+27 ~/ramv.sh | bash 
fi
fi
dacă [[ $? = "1" ]]; atunci
    dialog --msgbox "Această comandă nu va funcționa dacă nu instalați pachetele și discul ram." 24 80
altfel
dacă 
    dialog --yesno "Dimensiunea implicită a discului ram este de 2 GB. Aveți mai mult de 4 GB de RAM în total?" 24 80
    dacă [[ $? = "1" ]]; atunci
    dialog --msgbox „Această comandă nu va funcționa dacă nu aveți mai mult de 4 GB de RAM” 24 80
    altfel
    dialog --msgbox "Am nevoie de acces root pentru ca acest lucru să funcționeze. Vă rugăm să introduceți parola dvs. de root?" 24 80
    sudo dialog --msgbox "Mulțumesc! Acum putem începe cu crearea discului ram" 24 80
    sudo mkdir /mnt/tmp
    sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp
    sudo echo"
tmpfs /mnt/tmp tmpfs rw,size=2G 0 0" >> /etc/fstab
dialog --msgbox "Configurarea s-a finalizat. Un fișier de ajutor a fost scris în folderul dvs. de acasă." 24 80
atinge .ramv
fi
mv $1 /mnt/tmp
mv /mnt/tmp/$1 $2

Eroarea este afișată mai jos

eli@eli-desktop:~$ ./ramv.sh
./ramv.sh: linia 29: eroare de sintaxă: sfârșit neașteptat al fișierului
eli@eli-desktop:~$ 

Poate cineva să-mi arate de ce se întâmplă această eroare și cum să o repar?

drapel hr
Ei bine, număr 5 „dacă” și doar 3 „fi” - vă sugerez să începeți prin a vă indentați codul în mod consecvent, asta ar trebui să vă ajute să vă dați seama unde trebuie să ajungă cele lipsă.
FedKad avatar
drapel cn
Răspunde asta la întrebarea ta? [Aflați dacă scriptul shell conține o eroare de sintaxă fără a rula scriptul](https://askubuntu.com/questions/482687/know-whether-the-shell-script-contains-syntax-error-without-running-the-script ) Vezi al doilea răspuns!
waltinator avatar
drapel it
Lipiți întotdeauna scriptul în `https://shellcheck.net`, un verificator de sintaxă sau instalați `shellcheck` local. Utilizarea „shellcheck” este parte a procesului de dezvoltare.
Hannu avatar
drapel ca
`sudo echo "`
Eli Thrash avatar
drapel ar
Când adaug mai multe fi-uri, se spune „./ramv.sh: line 27: syntax error near token neașteptat „fi”” `./ramv.sh: linia 27: fi' `
Eli Thrash avatar
drapel ar
acum funcționează. Dar cum fac să omite comenzile de dialog după configurare?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.