Я хотел бы пройти путь потенциально содержащий пробелы в su -c
команду внутри .sh
сценария:избежать кавычки внутри су -c
su -c "xdg-desktop-menu install ${DesktopFile}" -m "${Username}"
$ DesktopFile мой путь, который должен получить убежали. Я пробовал много вариантов с '
внутри ""
, с \"
и несколькими брекетами, но у меня не было решения. Интересно, что xdg-desktop-icon отлично работает, но xdg-desktop-menu умирает в пробеле. Какие-либо предложения?
спасибо. 2 вопроса: а) я хотел использовать sh вместо bash, поэтому нет% q, и b) -m - это опция для su, а не xdg-desktop-menu, поэтому кавычки немного изменятся. б) я могу решить, но а) проблема ... любые предложения для printf% q на sh? – broozar
ok, переключился на/bin/bash для тестирования и нашел это: 'FFQ = $ (printf '% q'" $ DesktopFile ")' 'su -c" xdg-desktop-menu install $ FFQ "-m" $ Имя пользователя "' по-прежнему расщепляется после пробела. – broozar
нашел (n более старый) отчет об ошибке для xdg-desktop-меню и пробелов, даже если он прошел правильно. возможно, у моей версии все еще есть эта ошибка. – broozar