bash выполняет каждую команду конвейера в отдельной подоболочке, если вы не включите параметр оболочки lastpipe
# bash requires job control to be disabled for lastpipe setting
set +m
shopt -s lastpipe
declare -i sum=0
find. -name '*.js' -print0 | while IFS= read -d '' -r name; do
(( sum += $(wc -l < "$name") )) # redirect the file into wc for easier output
done
echo $sum
Подстановки процессов удобны для решения этой проблемы с подоболочкой:
declare -i sum=0
while IFS= read -d '' -r name; do
(( sum += $(wc -l < "$name") )) # redirect the file into wc for easier output
done < <(
find. -name '*.js' -print0
)
echo $sum
Однако это затрудняет чтение программы.
Фонет — это канальный/транспортный уровень для интерфейса интеллектуальных услуг(ISI ), который представляет собой протокол для связи с сотовым модемом, используемым мобильными телефонами Nokia. В некотором смысле ISI/Phonet служит альтернативой набору AT-команд и/или OBEX :за счет доступа к различным «фонетным ресурсам» с предварительно назначенными -номерами, модемом можно управлять по-разному, например, для:
PN_CALL
, 0x01; PN_MODEM_CALL
, 0xc9)PN_SMS
, 0x02)PN_SS
, 0x06)PN_SIM
, 0x09)PN_NETWORK
, 0x0a; PN_MODEM_NETWORK
, 0xc8)PN_PHONE_INFO
, 0x1b; PN_MODEM_INFO
, 0xc5)PN_UICC
, 0x8c)Я даже видел, как кто-то спрашивал о доступе к файловой системе смартфона черезPN_FILE_MANAGER
(0x65 )ресурс , но не нашел работающего кода, который бы это делал. Насколько я могу судить, ISI/Phonet не может передавать IP-трафик :, подключение к мобильной сети по-прежнему должно выполняться через PPP по последовательному каналу.
Реализация клиента Phonet находится в проекте oFono , в частности, в драйвереisimodem
. Некоторый код также можно найти в freesmartphone.org проекте Cornucopia, вmodem_nokia_isi
драйвере . Последний проект использовал части драйвера oFono isimodem
для создания автономной -библиотекиlibisi
. Wireshark также содержит диссектор для этого протокола.
When I connect one particularly old cellphone to my Linux laptop...
Похоже, что этот старый мобильный телефон — Nokia, и он предлагает работать как модем.
Полную документацию по семейству протоколов Phonet можно найти здесь:
https://www.kernel.org/doc/Documentation/networking/phonet.txt
what kind of data can be transferred over this kind of interface
Я полагаю, вы могли бы подключиться к нему с помощью какого-нибудь эмулятора терминала, такого как Minicom или Telix, и обмениваться с ним необработанными AT-командами, как с модемами былых дней. Может быть, сделать несколько сценариев оболочки, которые используют отправку dbus -, чтобы заставить его отправлять коды USSD и прочее. Это требует некоторых исследований.