мм, по идее (1 << 6) подготовка маски для проверки 6го бита (в паскале операция shl), можно заменить константой. А & - операция "и" которая проверяет есть ли этот бит с обоих сторон.
В баше я не очень (равно как и в пёрле с питоном и пхп). Что из доса помню - то юзаю
Самое удивительное - если бит "0" (замкнут железкой) то всё работает. Если нет - ошибка.
смысл вот:
http://ru.wikipedia.org/wiki/Bash#.D0.A6.D0.B5.D0.BB.D0.B.....обратите внимание на $((выражение))
или
http://citforum.ru/operating_systems/manpages/bash/BASH.1_3.shtml#arithmetic_evalможет & при значении по умолчанию из порта становится какойто командой? типа ">&"?
или "когда Ubuntu начал с октября 2006 года поставлять Debian Almquist shell (dash) как скриптовую оболочку по умолчанию, что привело к неработоспособности многочисленных скриптов."
Логические переменные
|| логическая операция OR (логическое ИЛИ). В операциях проверки условий, оператор || возвращает 0 (success), если один из операндов имеет значение true (ИСТИНА).
&& логическая операция AND (логическое И). В операциях проверки условий, оператор && возвращает 0 (success) тогда, и только тогда, когда оба операнда имеют значение true (ИСТИНА).
завтра проверю
У меня не 0х7Е, а 0х7F, странно, может от режима порта зависит? У меня в биосе стоит Normal (думаю это аналог SPP = Standart Par. Port)
Пользователь решил продолжить мысль [time]15 Октябрь 2014, 12:39:42[/time]:
root[_cut_]# /home/kdg/porttestcon/project1
79
4F
// В десятичной и шестнадцатеричной системе
root[_cut_]# /home/kdg/porttestcon/project1
79
4F
root[_cut_]# /home/kdg/porttestcon/project1
191
BF
//Тоже - но при замкнутых контактах
root[_cut_]# dd if=/dev/port bs=1 skip=889 count=1>con3
1+0 записей получено
1+0 записей отправлено
скопирован 1 байт (1 B), 0,000251707 c, 4,0 kB/c
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) & (1 << 6)))
0
// это при замкнутых - как видите норма, ответ корректен
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) & (1 << 6)))
bash: & (1 << 6): ошибка синтаксиса: ожидается операнд (ошибочная метка " & (1 << 6)")
//А это наш косяк
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) & (1 << 6)))
0
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) & (1 << 6)))
0
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) & (1 << 6)))
bash: & (1 << 6): ошибка синтаксиса: ожидается операнд (ошибочная метка " & (1 << 6)")
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) ))
bash: : ошибка синтаксиса: ожидается операнд (ошибочная метка " ")
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 ))
>
>
> ^C
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1 2>/dev/null) ))
bash: : ошибка синтаксиса: ожидается операнд (ошибочная метка " ")
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1>/dev/null) ))
1+0 записей получено
1+0 записей отправлено
скопирован 1 байт (1 B), 4,0788e-05 c, 24,5 kB/c
0
root[_cut_]# echo $(($(dd if=/dev/port bs=1 skip=889 count=1>/dev/null) & (1 << 6)))
1+0 записей получено
1+0 записей отправлено
скопирован 1 байт (1 B), 4,1346e-05 c, 24,2 kB/c
bash: & (1 << 6): ошибка синтаксиса: ожидается операнд (ошибочная метка "& (1 << 6)")
root[_cut_]#
Пользователь решил продолжить мысль [time]15 Октябрь 2014, 17:01:12[/time]:
Там где "ошибочная метка" не тот символ - не вставилось.
в общем вот, там скрин