Bash script - Returnera svar till shell

Trädvy Permalänk
Medlem
Registrerad
Jun 2004

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?

Trädvy Permalänk
Medlem
Plats
~/
Registrerad
Mar 2008

@TrIff:

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

AMD Ryzen 5 2600X, Asus ROG Strix B350-I, 16GB Corsair Vengeance LP 2400MHz, Nvidia GeForce GTX 970, Fractal Design Nano S, EVGA Supernova G2 650W.

Trädvy Permalänk
Medlem
Plats
~
Registrerad
Jul 2001

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?

Fedora, i3wm, Ansible, Vim, git, LaTeX - allt som behövs för att göra mig nöjd.

Trädvy Permalänk
Medlem
Registrerad
Jun 2004
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.

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Jan 2011

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

CPU: i7 4770k Noctua NH-D14 MOBO: Maximus VI Hero GPU: GTX 980 RAM: 16 GB 1600 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G500s V.v. citera mig för att få svar.

Trädvy Permalänk
Medlem
Plats
~
Registrerad
Jul 2001
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?

Fedora, i3wm, Ansible, Vim, git, LaTeX - allt som behövs för att göra mig nöjd.

Trädvy Permalänk
Medlem
Registrerad
Jun 2004

@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.