2013-12-05 2 views
4

Я пытаюсь создать маску и использовать побитовый оператор «&» для сравнения с другой переменной и увидеть результат. Пусть код:Bash shell, пытаясь создать и оценить маску

mask=00000 
mesk=00010 
mosk=$mask&$mesk 
echo $mosk 
echo meec 

Я пытаюсь расширить эту функцию, чтобы быть в состоянии иметь больше символов (различные ошибки/коды успеха), но эти строки просто не работают: Выполнение скрипта напечатает пустая строка, затем «meec».

Я пришел из объектно-ориентированного программирования, и хотя я прочитал несколько документов по этому вопросу, кажется, что я чего-то не хватает. Любая помощь будет оценена по достоинству.

Edit: По какой-то причине оказывается код не работает, он говорит: «Команда 00010 не найден»> _>

ответ

4

Это потому, что, как правило, & характер в оболочке модификатор поставить команду на заднем фоне.

Вы должны использовать Arithmetic Expansion Баш (например) для его работы:

mosk=$(($mask & $mesk)) 
+0

штопка, спасибо добрый незнакомец! Я видел кое-что об этой теме, но мне не удалось связать обе вещи (бит и расширение арифметики). – Neuromante