Если вы используете этот файл, можно предположить, что это часть процесса загрузки -и что среда TERM
не была установлена (, что делает использованиеtput
спорным ). Для этой цели он использует жестко закодированные escape-последовательности -.
Кроме того, установка RES_COL
мало что даст вашему скрипту, если только он не использует это значение. В этом файле используется только (Fedora ).
Вы можете добавить свою собственную функцию, передав ей строку для печати, и проверить длину для сравнения с $RES_COL
, а если она длиннее, просто напечатать (, чтобы закончить строку ), а затем в следующей строке используйте строку$MOVE_TO_COL
для перехода к столбцу ответа перед печатью ответа в echo_success
или echo_failure
.
Например, вы можете звонитьaction
:
action() {
local STRING rc
STRING=$1
echo -n "$STRING "
shift
"$@" && success $"$STRING" || failure $"$STRING"
rc=$?
echo
return $rc
}
Вы можете перенаправить вывод команды для захвата вывода. Это мешает строке rc=$?
, но вы можете получить это из переменной bash $PIPESTATUS
:
local RESULT
RESULT=$("$@" 2>&1)
rc=$PIPESTATUS
echo -n "$RESULT"
[ ${#RESULT} -ge $RES_COL ] && echo
[ $rc = 0 ] success $"$STRING" || failure $"$STRING"
Дополнительная литература:
Из следующей строки вывода изcat /proc/bus/input/devices
S: Sysfs=/devices/pci0000:00/0000:00:16.3/i2c_designware.3/i2c-3/i2c-ELAN0001:00/input/input6
видно, что устройство находится по pci-адресу 00:16.3
.
Сопоставив это с выводом lspci
, вы найдете строку
00:16.3 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #4 (rev 0b)
Это означает, что к шине PCI подключен контроллер I2C. Полное подключение выглядит так :Mainboard --[PCI bus]--> I2C controller --[I2C bus]--> Elan Touchscreen
lspci
не показывает информацию I2C.
lspci is a utility for displaying information about PCI buses in the system and devices connected to them.
исходный код :справочные страницы дляlspci