exit
обычно встроенная оболочка, таким образом, в теории она действительно зависит, на которой оболочке Вы используете. Однако я не знаю ни о какой оболочке, где она работает кроме выхода из текущего процесса. Из страницы справочника удара,
exit [n]
Cause the shell to exit with a status of n. If n is omitted,
the exit status is that of the last command executed. A trap on
EXIT is executed before the shell terminates.
Таким образом, это просто не заканчивает ток if
пункт, это выходит из целой оболочки (или процесс, в сущности, так как скрипт запускается в рамках процесса оболочки).
От человека sh,
exit [exitstatus]
Terminate the shell process. If exitstatus is given it is used as
the exit status of the shell; otherwise the exit status of the
preceding command is used.
И наконец, от человека ksh,
† exit [ n ]
Causes the shell to exit with the exit status specified by n.
The value will be the least significant 8 bits of the specified
status. If n is omitted, then the exit status is that of the
last command executed. An end-of-file will also cause the shell
to exit except for a shell which has the ignoreeof option (see
set below) turned on.
Я написал драйвер Linux для этого дерьмового устройства, его можно найти здесь: https://github.com/daedric/cntouch_driver
Я также отправил его для просмотра и слияния.
В следующий раз я покупаю ноутбук из LDLC без ОС (если это произойдет), я подумаю дважды ...
Редактировать:
Есть только события для:
Нет события для крана с двумя пальцами (обычно для моделирования правой кнопкой мыши).
Я начал писать сценарий Python для использования TouchPad (прежде чем попытка записать драйвер ядра C).
Существует запуск моей работы (перемещение и право/щелчок левой кнопкой, я сделаю эти два перемещения пальцев позже). Моя единственная проблема состоит в том, что без плагина мышь USB курсор мыши не видим на экране... (если у кого-то есть идея, потому что я ничего не могу найти). Код не прекрасен и довольно ужасен, но я не программист; D
#!/usr/bin/python
import sys
import os
import usb.core
import usb.util
#Find the device idVendor 0x294e / idProduct 0x1001
dev = usb.core.find(idVendor=0x294e, idProduct=0x1001)
#Select interface 0 and endpoint 0
interface = 0
endpoint = dev[0][(0,0)][0]
#Detach kernel driver
if dev.is_kernel_driver_active(interface) is True:
dev.detach_kernel_driver(interface)
usb.util.claim_interface(dev, interface)
collected = 0 #variable to skip the first two data
testsup = float(100)
testinf = float(127)
deplacement = testsup/testinf
sensibilite = 2.5
x = 0
y = 0
click = ""
mouse_btn_l = 0
mouse_btn_r = 0
#set cursor visibility
os.system("dconf write /org/cinnamon/settings-daemon/plugins/cursor/active false")
#Infinite while
while 1:
try:
data = dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize)
collected += 1
print data
#The 2 first data are not move data
if collected > 2:
#data[1] Right (1) & Left (255) = x
#data[2] Down (1) & Up (255) = y
# x
if (1 <= data[1] <= 127): #Right
x = data[1]*deplacement*sensibilite
elif (128 <= data[1] <= 255): #Left
x = -((-data[1]+256)*deplacement*sensibilite)
else : #No move on x axis
x = 0
# y
if (1 <= data[2] <= 127): #Down
y = data[2]*deplacement*sensibilite
elif (128 <= data[2] <= 255): #Up
y = -((-data[2]+256)*deplacement*sensibilite)
else : #No move on y axis
y = 0
#wheel is considere as a btn : 4 for up & 5 for down
if 1 <= data[3] <= 127: #up
click = "click 4"
elif 128 <= data[3] <= 255: #down
click = "click 5"
else:
click = " "
#Left click
if data[0] == 1 and mouse_btn_l == 0:
click = "mousedown 1"
mouse_btn_l = 1
#Right click
elif data[0] == 2 and mouse_btn_r == 0:
click = "mousedown 3"
mouse_btn_r = 1
#No click
elif data[0] == 0:
if mouse_btn_l == 1:
click = "mouseup 1"
if mouse_btn_r == 1:
click = "mouseup 3"
mouse_btn_l = 0
mouse_btn_r = 0
else:
click = " "
os.system("xdotool mousemove_relative -- %d %d %s" % (x, y, click))
# if data[0] == 1: #Right click
# os.system("xdotool click 1")
#Error
except usb.core.USBError as e:
data = None
if e.args == ('Operation timed out',):
continue
usb.util.release_interface(dev, interface)
#dev.attach_kernel_driver(interface)
У Вас должны быть Python, pyUsb и xdotool.
Править: После долгого времени я нашел решение (для меня) для видимости курсора. У меня есть корица, и ключ существуют для видимости курсора.
Простое
dconf write /org/cinnamon/settings-daemon/plugins/cursor/active false
и это хорошо для меня, таким образом, я добавляю эту команду в своем py сценарии с
os.system("")
Надежда это могло помочь!
У меня есть тот же компьютер и та же проблема с Debian (тестирующий необходимый из-за Wi-Fi). Если это может помочь, CNTouch не является устройством PCI, а USB-устройством. Выполнение lsusb перед нажатием Fn+F1 (для отключения) и после шоу ожог другая строка: Соедините шиной 001 Устройство 008: идентификатор 294e:1001
В моем случае.
Какой замечательный компьютер, нам, возможно, придется ожидать немного, чтобы иметь драйвер сенсорной панели. Эта сенсорная панель интересна, поскольку она не имеет никакой mecanical кнопки, она встраивается в поле, общая ширина и высота поля, ниже клавиатуры, чувствительны, включая местоположение кнопок.
Плохие новости, я записал в Foxconn без любого ответа, я записал в LDLC, они ответили, что разработали этот компьютер IRIS для Windows только, они только обеспечивают драйверы для окон, они никогда wrtote, что они поддерживают Linux (даже если компьютер продается без ОС, они притворяются, что это для людей, которые уже владеют лицензией окон). Они, которых explicitely не обеспечит никакому другому материалу (документ API, спецификации... который был их официальным ответом). Поскольку сенсорная панель CNTouch была частично разработана LDLC для LDLC, возможности являются очень низкими, чтобы иметь поддержку Linux со стороны сообщества. Пользователи Linux, быть очень mefiant против LDLC 'без ОС' компьютер.