Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: AimoE - 23.01.22 - klo:17.15

Otsikko: Bash-outous
Kirjoitti: AimoE - 23.01.22 - klo:17.15
Tuli vastaan juttu jota en ymmärrä.

Jos suoritan bash-komentorivillä tämän:
Koodia: [Valitse]
if [ -t 1 ] ; then echo true ; else echo false ; fi niin se tulostaa true. Mutta jos suoritan tämän:
Koodia: [Valitse]
echo $(if [ -t 1 ] ; then echo true ; else echo false ; fi) niin se tulostaakin false. Miten siinä niin käy? Minulla onkomentotiedostossa toinen samantyyppinen kohta, jossa if-lauseen ehtona on case-esac, ja siinä if toimii odotuksen mukaisesti, mutta tätä yksinkertaisempaa en vaan saa toimimaan.

Juu, toki sen asian voi koodata toisellakin tavalla, mutta haluaisin silti ymmärtää mistä on kyse.
Otsikko: Vs: Bash-outous
Kirjoitti: SuperOscar - 23.01.22 - klo:22.27
Oletan, että $()-rakenteen forkkaama uusi komentotulkki ei olekaan kiinni päätteessä, vaan ainoastaan sen emo? Joka tapauksessa zsh:ssa on täsmälleen samoin, joten tämän voinee olettaa olevan vakiotoiminta.