Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: AimoE - 23.01.22 - klo:17.15
-
Tuli vastaan juttu jota en ymmärrä.
Jos suoritan bash-komentorivillä tämän: if [ -t 1 ] ; then echo true ; else echo false ; fi
niin se tulostaa true. Mutta jos suoritan tämän: 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.
-
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.