Допустим, мне надо сделать такую не очень красивую вещь: моя программа на С принимает от юзера строку hostname и делает fork & exec вот такой команды: bash -c 'ping hostname'.
Проблема вот в чем: hostname может содержать какое-нибудь «127.0.0.1 && kill -9 100500», и надо ее shell-quote. Как это правильно сделать?
man bash говорит «A single quote may not occur between single quotes, even when preceded by a backslash.». То есть одинарные кавычки не сработают потому что юзер может послать кавычку. С двойными кавычками надо какие-то символы вроде $ эскейпить.
Расскажите плз как сделать так чтобы работало 100%?