echo отображает содержимое переменной, а kdialog (KDE) возвращает пустой результат.
У меня есть следующий код в Bash:
MESSAGE () {
VAR="$1"
BLUE="$( tput setaf 4 )"
RESET="$( tput sgr0 )"
VAR="${VAR//\[ i \] /${BLUE}'[ i ] '${RESET}}"
VAR="${VAR//#BLUE /${BLUE}}"
VAR="${VAR//#RESET /${RESET}}"
VAR_POPUP="$VAR"
VAR=$( echo "$VAR" | sed 's/#POPUP //' )
echo -e "${VAR}${RESET}"
if ( echo "$VAR_POPUP" | grep -q -E '^#POPUP' )
then
VAR_POPUP="$( echo "$VAR_POPUP" | sed 's/#POPUP //' )"
VAR_POPUP="$( echo "$VAR_POPUP" | sed 's/\[ .* \] //' )"
echo "$VAR_POPUP" # Displaying the text of the $VAR_POPUP variable
kdialog --passivepopup "$VAR_POPUP" # Not displaying the text of the $VAR_POPUP variable
fi
}
MESSAGE "#POPUP [ i ] text"
Я не понимаю, почему переменная «$VAR_POPUP» ничего не отображает в связи с kdialog . В строке выше (echo "$VAR_POPUP") отображается его значение, а (kdialog --passivepopup "$VAR_POPUP") возвращает пустой результат.