Метод, который работал для меня на Debian Wheezy 7.6:
sudo apt-get install subversion yasm build-essential autoconf libtool zlib1g-dev libbz2-dev libxml2-dev libogg-dev libvorbis-dev libsamplerate-dev libfribidi-dev libfreetype6-dev libfontconfig1-dev libass-dev libmp3lame-dev libx264-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk-3-dev libgudev-1.0-dev libwebkitgtk-3.0-dev libnotify-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libappindicator-dev libtheora-dev
svn checkout svn://svn.handbrake.fr/HandBrake/trunk hb-trunk
cd hb-trunk
./configure --disable-gtk --launch
cd build
sudo make install
Я использовал '--disable-gtk' только для сборки/установки HandadingCLI .
Также обратить внимание, что вы можете читать о необходимых зависимостях, и такой в ридми в svn загрузил файлы: hb-trunk/doc/BUILD-Linux
Две вещи, которые вам нужно сделать:
Mosquitto_Pub
-T
параметр Mosquitto_Pub
должен быть окружен
Двойные цитаты ( »
), а не отдельные цитаты (
) в частности (2) вот причина вашей проблемы. Односмысленные цитаты не позволят оценке $
переменных.
if ...
then
#change location of machine
mosquitto_pub -t "/${user_defined_new_machine_location}/cmd" -m '-changelocation'
...
Как сказал Roima в комментарии, вы должны использовать двойные цитаты для переменных, которые вы хотите расширить (так, »$ location"
), как отдельные цитаты, защищающие переменные от расширения Отказ
Строки в одиночных цитатах используются как есть. В одной цитируемой строке единственный специальный символ
символ цитаты, который заканчивается строкой.
В строках в двойных цитатах, персонажи «\
$ являются специальными:
« заканчивается строка,
`делает следующий символ терять свою специальную интерпретацию, `
начинает замену команды, и $
запускает переменную замену, замену команды или арифметическое расширение. Таким образом, поскольку вы хотите расширить переменные, используйте двойные кавычки вместо одиночных кавычек. Это не связано с использованием командной замены.
В дополнениех замена команд не имеет смысла в контексте. Вы принимаете вывод команды Mosquitto_Pub ...
, расщепляя его на пробеле, интерпретируя каждое из полученных слов как шаблон шаблона и используя результат этого расширения в виде команды и его аргументов. Я не уверен, что эта программа пытается сделать; Если вы просто хотите запустить команду CoSquterto_Pub
, удалите образец. Если вы хотите назначить его вывод в переменной, вам нужно написать такое назначение, такое как
some_variable=`mosquitto_pub -t "/$user_defined_new_machine_location/cmd" -m '-changelocation'`
на необрабовленной ноте, не используйте имена переменной, такие как Состояние_While_One
. Это имя бессмысленно. Используйте имя, которое отражает то, для чего используется переменная. Для этого конкретного примера вам не нужна вариабельная вариация - сделайте это вместо этого:
while true; do
…
if …; then
mosquitto_pub …
break
fi
done