xinput не показывает драйвер

Моя собственная версия вашего сценария, вероятно, выглядела бы так:

set -- *.java
test -e "$1" && {
    fortyequals=$(printf '%040d\n' | tr 0 \=)
    for javaFile do
        printf '%s\nIn file: %s\n%s\n' \
            $fortyequals "$javaFile" $fortyequals
        grep -E '^[^/]{2}.*(ftp|http)' "$javaFile"       
    done 
} >>~/Desktop/externalservers.txt

Уже предложенное решение излишне специфично для оболочки. Вы могли бы достичь того же эффекта с помощью переносимого синтаксиса - который позволяет меньше запоминать в долгосрочной перспективе с дополнительным преимуществом в виде большей надежности, например:

set -- *.java
test -e "$1" &&
    for javaFile do
#       ...iterate on $javaFile here...
    done

Другим преимуществом является то, что вы не только сохраняете последнее значение $javaFile после цикла, вы также сохраняете все значения, которые $javaFile когда-либо имели в $@. Это делает возможным следующее:

...
done

echo "The previous for loop processed $# files."

echo "The first file processed was:"
printf "///\t'%s'\t///\n" "$1"

echo "The last file processed was:"
printf "///\t'%s'\t///\n" "$javaFile"

echo 'All files processed in the for loop were:'
printf "///\t'%s'\t///\n" "$@"

И если вам действительно нравятся {curlies }, вы можете использовать их - даже в bash (хотя они и не нужны) - но вы должны разграничить два shell зарезервированных слова } и done, например:

for ... do {
...
} ; done

Хотя я рекомендую заключить весь блок - вокруг цикла for и любой последующей обработки - в завитки, зависящие от && зарезервированных слов, например:

set -- *.java
test -e "$1" && {
    for ... done
#   ...further processing on $@...
} 

Оглядываясь назад, я думаю, что могу помочь и с regex. .. Похоже, что мы ищем строки, содержащие слова http и/или ftp, которые не начинаются с двух //.

Я думаю, что остальное - результат отдельных операций grep, которые вы выполняете. Похоже, что вы пытаетесь очистить пустые строки, но, как я представляю, они возникают в первую очередь из-за повторяющихся добавленных записей в файл.

Итак, вместо этого мы могли бы просто записывать for вывод цикла непосредственно в outfile, чтобы сохранить дескриптор записи для ~/Desktop/externalservers.txt до завершения цикла, что позволит избежать записи пустых строк. Может быть так:

for ... done >>outfile

Или

{ grouped ; command ; list ; } >>outfile

По крайней мере, я могу сказать, что это утверждение, вероятно, не делает того, что вы хотите:

sed 's/^\n//' $file

sed является \newline delimited - невозможно встретить \newline как ^первый символ в строке. Вы можете получить \newlines в пространство шаблонов sed различными способами, но никогда без некоторой обработки.

1
01.02.2019, 18:25
1 ответ

Ваш тачпад не определяется. В худшем случае вам, возможно, придется подключить внешнюю мышь для устранения неполадок или до тех пор, пока отсутствующий драйвер не будет разработан и включен в используемый вами дистрибутив.

Судя по комментариям, ваша аппаратная модель — Acer Nitro 5 AN515 -52. Погуглив, я нашел это обсуждение на форуме поддержки Acer. В этом случае в настройках BIOS есть параметр для сенсорной панели, который можно установить на Basicили Advanced-. Если в вашей системе используется то же самое, попробуйте оба варианта.

Кроме того, кажется, что система, обсуждаемая на форуме Acer, имеет сенсорную панель на базе I2C -. По сравнению с PS/2 или USB, это довольно новый интерфейс для HID-устройств -, спецификация которого была завершена в 2012 году. В Linux это должно поддерживаться модулем i2c-hidи, возможно, соответствующим модулем драйвера шины i2c.. Модуль i2c-hidдля Linux был первоначально разработан в конце 2012 года, и похоже, что он был добавлен в основную кодовую базу ядра где-то в версии ядра 3.8.

До того, как спецификация I2C HID стала широко использоваться,модули, относящиеся к I2C -, могут рассматриваться как -необязательные в Linux, и, вероятно, поэтому программа установки до сих пор не загружает их автоматически -, но если вы можете выполнить установку с помощью внешней мыши, система может автоматически загружать необходимые модули для поддержки сенсорной панели I2C при загрузке полностью установленной операционной системы Linux.

1
27.01.2020, 23:42

Теги

Похожие вопросы