Первая строка использует значения отexpr
до :
.
$newProg
с базовым регулярным выражением .* -> \(.*\)$
(, закрепленным на обоих концах ). Это все, что содержит ->
. newProg
часть исходного значения , совпадающую с подвыражением захвата , записанным в круглых скобках (часть после->
). Семантика жадного сопоставления такова, что она всегда фиксирует и выводит последнее такое совпадение, поэтому ->
никогда не будет в выходных данных.
Это, например, будет анализировать вывод ls -l
по символической ссылке, чтобы найти цель (с заданными именами файлов с хорошим -поведением и т. д., обычные предостережения ).
Во второй строке снова используется expr
, чтобы проверить, начинается ли новое значение newProg
с /
, т. е. представляет ли оно абсолютный путь.
В этом случае prog
просто устанавливается на это значение. В противном случае prog
устанавливается на вычисленный относительный путь с помощью dirname
на $prog
, переменная, не определенная в этом фрагменте.Эффект, по-видимому, будет заключаться в построении пути относительно этого исходного местоположения.
Если вы ориентируетесь только на более функциональную оболочку или среду, чем чистый POSIX, вероятно, существует более надежный способ сделать это, чем expr
. readlink
также является очень часто -доступной командой, которая позволяет сэкономить на синтаксическом анализе ls
.
Вам необходимо включить 32-битную -архитектуру и установить все необходимые пакеты. См. инструкцию по установке :
.sudo dpkg --add-architecture i386 && sudo apt update
sudo apt install \
wine \
wine32 \
wine64 \
libwine \
libwine:i386 \
fonts-wine
Я использую Debian 10 buster
, и у меня была такая же проблема с wine32
. Кажется, упомянутый выше подход работал с момента некоторого обновления Debian 10.9. Я решаю это так:
$dpkg --print-architecture && dpkg --print-foreign-architectures
amd64
i386
$sudo apt remove wine && sudo apt purge wine
$sudo apt remove wine64 && sudo apt purge wine64
$wget -nc https://dl.winehq.org/wine-builds/winehq.key
File ‘winehq.key’ already there; not retrieving.
$sudo apt-key add winehq.key
OK
$sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/debian/ buster main'
$sudo apt update
$sudo apt install --install-recommends winehq-stable
$wine --version
wine-6.0
$sudo apt install winetricks wine32
userdbn@debian:~/Downloads$ winecfg
wine: '/home/userdbn/.wine' is a 64-bit installation, it cannot be used with a 32-bit wineserver.
userdbn@debian:~/Downloads$ sudo apt install wine64
и после этого все программы Windows снова начинают работать.