Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: bash nemá 26. 04. 2018, 10:08:15
-
K čemu v bashi je konstrukce "${prom}" ? Má nějaké využití, kde by ${prom} nebo $prom nestačilo ?
Pak druhý dotaz
proč
printf "a1\na2" | read jj ; echo $jj
echo "a1\na2" | read jj ; echo $jj
vypíše obojí prázdný řádek, dokonce proměnné jsou nedefinovány ,když vymažu výpis shellu, dám set a přes Ctrl F prohledám výskyt proměnnné-
-
zřetězení třeba
echo $CROSS_COMPILE
echo $CROSS_COMPILEgcc
echo ${CROSS_COMPILE}gcc
-
K čemu v bashi je konstrukce "${prom}" ? Má nějaké využití, kde by ${prom} nebo $prom nestačilo ?
Pak druhý dotaz
proč
printf "a1\na2" | read jj ; echo $jj
echo "a1\na2" | read jj ; echo $jj
vypíše obojí prázdný řádek, dokonce proměnné jsou nedefinovány ,když vymažu výpis shellu, dám set a přes Ctrl F prohledám výskyt proměnnné-
ad1 shell parameter expansion
ad2 a preco je tam pajpa? ked chces aby to nieco robilo daj si miesto pajpy ;
-
ještě jeden případ
x="${CROSS_COMPILE}gcc x.c"
-
Pak druhý dotaz
proč
printf "a1\na2" | read jj ; echo $jj
echo "a1\na2" | read jj ; echo $jj
Pokud je to fakt takto, neni to nejaky nepovedeny priklad ze skoly?
-
Pak druhý dotaz
proč
printf "a1\na2" | read jj ; echo $jj
echo "a1\na2" | read jj ; echo $jj
Na první už bylo odpovězeno, ale třeba existují ještě tvary z modifikátory ${prom//x/y} nebo ${prom:-0}. doporučuji si pročíst manuál https://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html
Máš to více nezávislých procesů:
1) echo "a1\na2" | read jj
1b) echo "a1\na2"
2b) read jj
2) echo $jj
Read je je subprocess prvního příkazu a nemá žádný vztah s příkazem druhým. Před těmi příkazy si zavolej set -u a dozvíš se proč ti to vrací prázdný řádek :).
Správně by třeba mělo být echo -e "a1\na2" | while read jj; do echo $jj; done, tj. pak strom procesů:
1) echo -e "a1\na2" | while read jj
1a) echo -e "a1\na2"
1b) while read jj
1ba) while read jj