Fish Shell:
Debug-output afdrukken

Hoe te:

Maak jezelf vertrouwd met echo - het Zwitserse zakmes voor output in Fish. Hier is hoe je wat debug-prints kunt toevoegen aan je shellscripts.

function greet
    set name $argv[1]
    echo "Hey, $name! Laten we debuggen."
    echo "De greet-functie wordt uitgevoerd" >&2
end

greet "Ada"

Voorbeelduitvoer:

Hey, Ada! Laten we debuggen.
De greet-functie wordt uitgevoerd

Standaard uitvoer (stdout) is het hoofdpodium van je script, maar voor debug-geklets, gebruik standaard fout (stderr) met >&2.

Diepere duik

Terug in de tijd, toen monitoren net zo diep als breed waren, was output kostbaar. Standaard uitvoer (stdout) werd het zuivere, op de gebruiker gerichte kanaal, terwijl standaard fout (stderr) veranderde in het achterafstraatje voor alleen programmeur-gezwets, zoals debug-informatie.

In Fish zijn de standaard commando’s voor output echo, printf, en print. De echo is eenvoudig en voornamelijk gebruikt voor simpele berichten en inline debug.

Je bent niet alleen aan echo gebonden, hoewel. Geef de voorkeur aan printf voor geformatteerde strings, of gebruik omleiding (> of >>) om debug-info in een bestand te dumpen voor later.

Wat betreft de implementatie, het gebruiken van stderr voor debug-output is een conventie uit de Unix-wereld, die helpt om het kaf (de daadwerkelijke output) van het koren (debug-ruis) te scheiden. Dit betekent dat gebruikers nog steeds de werkelijke output van je script kunnen pijplijnen zonder dat debug-geklets erin gemengd wordt.

Zie ook