Я пытаюсь понять, как, если даже это можно сделать, я могу избежать подоболочки?
Это единственный способ написать код или есть другой способ?
Я пытался использовать фигурные скобки { ... }
, но он не пройдет проверку оболочки и не запустится.
is_running_interactively ()
# test if file descriptor 0 = standard input is connected to the terminal
{
[ -t 0 ]
}
is_tput_available ()
# check if tput coloring is available
{
command -v tput > /dev/null 2>&1 &&
tput bold > /dev/null 2>&1 &&
tput setaf 1 > /dev/null 2>&1
}
some_other_function ()
# so far unfinished function
{
# is this a subshell? if so, can I avoid it somehow?
( is_running_interactively && is_tput_available ) || # <-- HERE
{
printf '%b' "${2}"
return
}
...
}