Issue with channel variables

I send string from my dialplan to outside applications. These strings are stored in channel variables. The problem is that parts of the string are getting removed by Asterisk. For example, the channel variables ${customer_account} has a literal value of “someAccount$100”. However the outside application only ever receives “someAccount00,” so the “$1” is getting removed.

Why does this happen? Will simple escape to “$” solve this?

It is probably being removed by the shell used to start the application.