I want to print a string and be sure all $VARs inside it are not expanded to their values.That's why I enclose my text in single quotes.Example:  echo '$SHELL';read -sn 1This command displays non-expanded $SHELL and waits until user pressed any key.Now lets quote this string and prepend with bash -c:  bash -c 'echo '\''$SHELL'\'';read -sn 1'This command does exactly the same as previous one.One more quoting to get the final string:  'bash -c '\''echo '\''\'\'\''$SHELL'\''\'\'\'';read -sn 1'\'Please pay attention to the following fact:on every step the central substring $SHELL is inside single quotes, so, it can't be expanded.Now lets test our final string:Test 1: bash -c 'bash -c '\''echo '\''\'\'\''$SHELL'\''\'\'\'';read -sn 1'\'It works fine: displays non-expanded $SHELL and waits until user pressed any key.Test 2: gnome-terminal -e 'bash -c '\''echo '\''\'\'\''$SHELL'\''\'\'\'';read -sn 1'\'It works fine: non-expanded $SHELL is displayed inside new terminal window.Test 3: konsole -e 'bash -c '\''echo '\''\'\'\''$SHELL'\''\'\'\'';read -sn 1'\'This test fails: /bin/bash is displayed instead of $SHELL.Questions:1) Why konsole disobeys quoting rules?2) How to pass a string as parameter to konsole -e and be sure it will not get expanded?Edit:Using strace did not give any results: its output does not contain string executed by konsole.  
Why do konsole expand $VAR inside single quotes in  command line option?
bash;quoting;konsole