Puncte:0

Se obține o eroare de sintaxă la rularea fișierului test.sh „./test.sh: 36: Eroare de sintaxă: sfârșitul fișierului neașteptat (se așteaptă „terminat”)”

drapel cn

Primesc această eroare de sintaxă când rulez fișierul test.sh:

./test.sh: 36: Eroare de sintaxă: sfârșitul fișierului neașteptat (se așteaptă „terminat”)

test.sh:

#!/bin/sh

# WebHook
url="DiscordWebHook"
hostname="TestingSvr01"
PublicIP="IP-ul meu"

# verificați utilizarea curentă a discului
df -H | grep -vE '^Filesystem|tmpfs|cdrom|loop' | awk '{ print $5 " " $6 }' | în timpul citirii ieșirii;

# atribuiți variabile
do
  #echo $ieșire
  folosit=$(echo $ieșire | awk '{ print $1}' | cut -d'%' -f1 )
  partiție=$(echo $ieșire | awk '{ print $2 }' )
  USERNAME=\"${hostname}\"
  PUBLICIP=\"${PublicIP}\"
  msg_content=\"$mesaj\"
  DISCORD_WEBHOOK_URL="${url}"

  # dacă discul a atins pragul, trimiteți o notificare către Discord #Infra. 
  if [ $used -ge 85 ]; atunci
curl -H „Tip conținut: aplicație/json” -X POST -d „{\"utilizat\": $folosit, \"partiție\": $partiție, \"nume utilizator\": $USERNAME, \"IP\ ": $publicIP, \"conținut\": $msg_content}" $DISCORD_WEBHOOK_URL
  altfel
    echo „${output} a eșuat”
  fi
iesirea 0
Terminat
Puncte:3
drapel sa

Terminat în ultima linie este sensibilă la majuscule. bash se asteapta Terminat, deci folosește Terminat (toate litere mici) în schimb.

Iată rezultatele verificării scriptului bash shell la https://www.shellcheck.net/.

introduceți descrierea imaginii aici

PublicIP în PUBLICIP=\"${PublicIP}\" nu se potrivește publicIP în curl -H „Content-Type: application/json” -X POST -d „{”used”: $used, „partition”: $partition, „username”: $USERNAME, „IP”: $publicIP, „conținut”: $msg_content}” $DISCORD_WEBHOOK_URL Utilizare PUBLICIP=\"${publicIP}\" in schimb.

Puteți instala ShellCheck în Ubuntu cu sudo apt install shellcheck și rulați-l cu test shellcheck.sh ShellCheck ar fi un instrument foarte convenabil de utilizat pentru verificarea scriptului shell, deoarece indică locația exactă a erorii în fiecare linie unde se află o eroare pe care a găsit-o.

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.