Bash script - Returnera svar till shell

Permalänk
Medlem

Bash script - Returnera svar till shell

Jag ska skriva ett script som kontrollerar om en användare är inloggad i systemet, användaren ska skickas med som argument. Om användaren är inloggad ska 1 returneras annars 0.

So far so good, men sen ska svaret returneras till skalet, INTE skrivas ut.

Problemet är att jag inte förstår vad som menas med att svaret returneras till skalet. Någon som kan förklara alternativt peka mig i rätt riktning?

Permalänk
Medlem

@TrIff:

Håller på med det här också... Återkommer när jag blir lite klokare.

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk
Medlem

Utan att ge en komplett lösning, så iakttag följande kodskelett:

#!/bin/bash functionname() { <command here> } functionname echo $?

Vad gör de olika raderna och varför? Vad händer om vi lägger in en tilldelning av en variabel värdet "$?" mellan de sista två raderna, eller om vi duplikerar sista raden?

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Windows 11)
Serverdesktop: AMD 5600G, 64 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8

Permalänk
Medlem
Skrivet av Crazy Ferret:

Utan att ge en komplett lösning, så iakttag följande kodskelett:

#!/bin/bash functionname() { <command here> } functionname echo $?

Vad gör de olika raderna och varför? Vad händer om vi lägger in en tilldelning av en variabel värdet "$?" mellan de sista två raderna, eller om vi duplikerar sista raden?

Första raden definierar funktionen genom att namnge den.
Inom curly brackets anger man vad funktionen ska göra genom kommandon.
Näst sista raden anropar funktionen.
Sista raden innehåller senaste returnen.

Permalänk
Medlem

du vill skapa en pipe till rätt stream, istället för att det ska skickas till stdout?

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem
Skrivet av TrIff:

Första raden definierar funktionen genom att namnge den.
Inom curly brackets anger man vad funktionen ska göra genom kommandon.
Näst sista raden anropar funktionen.
Sista raden innehåller senaste returnen.

Close enough. Härnäst handlar det bara om att du ska se på vilka nivåer dessa saker sker på, vilka variabler som är tillgängliga på respektive, samt känna till hur du tilldelar variabler så att du kan ta hand om dem. Men, som jag fått intrycket har du redan det klart för dig (men jag skriver det för att framtida läsare som inte har det ska få ut något av att läsa det här).

Så, låt mig få klart för mig själv här ... Du undrar vad som menas med "skalet", eller är det hur du ska ta hand om det flyktiga returvärdet?

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Windows 11)
Serverdesktop: AMD 5600G, 64 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8

Permalänk
Medlem

@Crazy Ferret:

Ja det var vad som menades med att svaret returnerades till skalet jag funderade över. Men det var tydligen bara att använda exit 1 och 0.