Pureos TP-Link WN725N RTL8188EU / BCM94312

Если вы последуете моему совету, вы не будете использовать "или $ () - это немного глупо. bc - интерактивный строчно-ориентированный интерпретатор. Он читает строку из стандартного ввода, проверяет, нужна ли другая строка на основе только что прочитанного ввода, а затем либо выводит результаты на стандартный вывод, либо запрашивает дополнительную информацию на стандартном вводе. Как и ваша оболочка, он даже откажется делать что-либо, кроме вывода строкового буфера, даже если он записывается не на терминал. Нет никакой необходимости вызывать новый bc для каждого вычисления - особенно при подстановке команд, которая также включает вызов полностью новой оболочки и выделение нового канала.

Лучше всего организовать совместный процесс.

# in a bash shell
exec 8<> >( : ) 9< <( bc <&8 )
echo 'b=5;++b' >&8
read  b <&9
echo "$b"

6

И bc будет просто продолжать работать - все те значения переменных, которые вы делаете так много, чтобы перемещаться между эфемерными, замененными командами bc процессами могли быть проще централизованно хранить в центральном bc .

echo b\*b >&8; read b <&9; echo "$b"

32

И что еще лучше, поскольку я на днях научился это делать, вы можете поместить процесс bc на сервер сокетов.

{ ncat -l 9000 --allow localhost -k| bc; } <>/dev/fd/1 |:&

И с оболочкой, говорящей на языке / dev / tcp :

{ echo 'b=10;b' >&0; read b; echo "$b"; } <>/dev/tcp/localhost/9000

10

Это может стать немного громоздким. Я написал небольшую функцию под названием bchat () , чтобы упростить задачу.

bchat(){
        local IFS=\;                                 ### separate on ;
        printf ${1+'%s;"\n"\n';}"$*"                 ### print \0 if no args
        set --                                       ### init  args
        while  read   bchat       &&                 ### while read <bc
              "${bchat:+set}" -- "$@" "${bchat:=$*}" ### append to args
        do :;  done 2>/dev/null                      ### and done
}       <>"$BC" >&0                                  ### $BC must be set

После настройки сервера сокетов, как показано выше, вы можете использовать эту функцию, например:

BC=/dev/tcp/localhost/9000
bchat b=5 x='(b--)' '"x="' ++x '"b="' --b
echo "$bchat" 

x=6;b=3

... и снова это состояние будет сохраняться, пока процесс bc будет ...

{{1} }
2
20.01.2019, 14:51
1 ответ

PureOS — это дистрибутив GNU , основанный на Debian, он не имеет не -бесплатного или вкладного репозитория:

These distros are ready-to-use full systems whose developers have made a commitment to follow the Guidelines for Free System Distributions. This means they will include, and propose, exclusively free software. They will reject nonfree applications, nonfree programming platforms, nonfree drivers, nonfree firmware “blobs”, nonfree games, and any other nonfree software, as well as nonfree manuals or documentation.

Для Wi-Fi-карт Realtek и Broadcom требуется non-freeпрограммное обеспечение.

Вам нужна карта Wi-Fi с набором микросхем, который работает с бесплатным программным обеспечением .

Дебиан :Wi-Fi

2
27.01.2020, 22:08

Теги

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