Сделать установленным Wine Player Player Player Player

Я написал этот скрипт Bash, чтобы обойти эту проблему, но имейте в виду, что я новичок в скриптах. Все предложения приветствуются! Использование и описание следуют ниже сценария.

#!/bin/bash
# umanage.sh
# 2014-05-05

BASEPATH="/media/$(whoami)/"
RESULTS=$(udisksctl dump | grep IdLabel | grep -c -i "$1")

case "$RESULTS" in

0 )     echo "Nothing found."
        ;;

1 )     DEVICELABEL=$(udisksctl dump | grep IdLabel | grep -i "$1" | cut -d ":" -f 2 | sed 's/^[ \t]*//')
        DEVICE=$(udisksctl dump | grep -i "IdLabel: \+$DEVICELABEL" -B 12 | grep " Device:" | cut -d ":" -f 2 | sed 's/^[ \t]*//')
        DEVICEPATH="$BASEPATH""$DEVICELABEL"

        if [[ -z $(mount | grep "$DEVICE") ]]
        then
                echo "Found unmounted $DEVICE partition."
                echo "Do you want to mount it in $DEVICEPATH?"
                select yn in "Mount" "Ignore"
                do
                        case $yn in
                        Mount )         udisksctl mount -b "$DEVICE"
                                        break
                                        ;;
                        Ignore )        exit
                                        ;;
                        esac
                done
        else
                echo "Found $DEVICE partition, currently mounted in $DEVICEPATH."
                echo "Do you want to unmount it?"
                select yn in "Unmount" "Ignore"
                do
                        case $yn in
                        Unmount )       udisksctl unmount -b "$DEVICE"
                                        break
                                        ;;
                        Ignore )        exit
                                        ;;
                        esac
                done
        fi
        ;;

* )     if [ $# -eq 0 ]
        then
                echo "No argument supplied"
        else
                echo "$RESULTS possible results. You may be looking for:"
                echo
                udisksctl dump | grep IdLabel | grep -i "$1" | cut -d ":" -f 2 | sed 's/^[ \t]*//' | sed '/^$/d'
                echo
                echo "Please refine your search."
        fi
        ;;

esac

Использование:

сохранить сценарий как umanage.sh сделать его исполняемым: chmod + x umanage.sh запустить его: ./umanage .sh YourDeviceLabel

Сценарий принимает в качестве аргумента метку раздела, который вы хотите монтировать, и просматривает дамп udisksctl для соответствующих записей.

Если раздел найден и он не установлен, отображаются имя и путь устройства, и вам предлагается установить раздел. Сценарий также ищет частичные ярлыки, и он не заботится о верхнем или нижнем регистре (полезно, когда вы не помните точную метку).

./umanage.sh PASSPORT
Found unmounted /dev/sdf1 partition.
Do you want to mount it in /media/pixel/My Passport?
1) Mount
2) Ignore
#? 

Если раздел найден и он уже установлен, вам предлагается отключить его:

./umanage.sh passp
Found /dev/sdf1 partition, currently mounted in /media/open/My Passport.
Do you want to unmount it?
1) Unmount
2) Ignore
#?

Если ваш аргумент соответствует более чем результату, сценарий показывает вы сопоставляете метки разделов и попросите уточнить поиск:

./umanage.sh SS
2 possible results. You may be looking for:

SSD-9GB
My Passport

Please refine your search.
4
задан 12 October 2011 в 19:17

2 ответа

Для вас может быть достаточно длинной записи, но первого и последнего битов.

Вы можете поместить стартовую команду в скрипт (например, divx-player) и назначить этот скрипт для запуска определенного типа с помощью Nautilus - Properties - Open with ...

Но что это команда? Следующее объяснение длинное, но идея очень проста, как только вы «получили» ее. (Мне потребовалось некоторое время, чтобы «получить» это :)

Поскольку вы можете иметь несколько [ f7] (например, в соответствии с конкретными настройками для конкретной программы), системе следует сообщить, какой wine вы хотите запустить. Для этого wine использует переменную среды с именем $ WINEPREFIX.

Если вы используете wine из своего местоположения по умолчанию, $ WINEPREFIX будет иметь значение $HOME/.wine ... Предположим, что ваш DivX-плеер установлен в этот WINEPREFIX (в эту среду). .

Чтобы быть надежным, ваша команда wine должна явно указывать WINEPREFIX, поэтому wine знает, в какую винную среду запускаться.

Если вы явно не укажете WINEPREFIX, вино будет использовать значение по умолчанию, указанное вами при установке вина.

Вот команда указать WINEPREFIX, который вы хотите использовать.

env WINEPREFIX="$HOME/.wine"  wine    

Чтобы чисто запустить приложение через командную строку Windows, рекомендуется использовать команду Windows start.exe, поэтому команда nees должна включать это (обратите внимание на использование thw Windows C: \ style \ path-name здесь) ..

 env WINEPREFIX="$HOME/.wine"  wine  'C:\windows\command\start.exe'    

Файлы, которые находятся в каталоге $WINEPREFIX/dosdevices/c:/, могут быть адресованы в этом стиле Windows, но файлы в другом месте вашего sysem нуждаются в другом подходе , Windows C:\ отображается в каталог unix `$WINEPREFIX/dosdevices/c:/, а другие файлы в вашей системе могут быть доступны из wine через другой виртуальный дисковод Windows Z:\ ... но wine предоставляет более простой метод для доступа к вашим файлам данных (например, к фильму, где-нибудь в любом месте вашей файловой системы).

Эти файлы, конечно, известны в мире Unix / Linux их именами в стиле Unix. wine облегчает перевод из имен пути в стиле unix на имена путей в стиле Windows через опцию командной строки, определенную в вине /Unix

Теперь для вашей команды проигрывателя DivX необходимо следовать /path/to/the/DivX-player -options /path/to/the/movie. Но поскольку проигрыватель DivX является приложением Windows, он ожидает, что все пути будут в формате Windows (например: C:\Program Files\etc\etc).

Поскольку DivX player.exe находится в среде WINEPREFX, вы можете запустить его либо через C:\Windows\path, либо через /Unix /Unix/path. Использование опции /Unix обычно проще и менее подвержено ошибкам, потому что вам не нужно вручную перевернуть все слэши на обратные косые черты. Все четыре из следующих команд будут запускать проигрыватель, но первый вариант (/Unix /unix-path/player.exe), как правило, лучший выбор.

# Using Unix-style: Run the .exe directly
/Unix "$WINEPREFIX/dosdevices/c:/Program Files/DivX/DivX.exe"

# Using Unix-style: Run the .exe via its Windows menu shortcut.lnk
/Unix "$WINEPREFIX/dosdevices/c:/users/Public/Start Menu/Programs/DivX/DivX.lnk"

# Using Windows-style: Run the .exe directly
'C:\Program Files\DivX\DivX.exe'

# Using Windows-style: Run the .exe via its Windows menu shortcut.lnk
'C:\users\Public\Start Menu\Programs\DivX\DivX.lnk'

Тогда вы можете просто нажать на конечный arg, путь к фильму (в стиле unix) ... так что полная команда становится ...

env WINEPREFIX="$HOME/.wine" \
    wine 'C:\windows\command\start.exe' \
    /Unix "$WINEPREFIX/dosdevices/c:/Program Files/DivX/DivX.exe" \
    /Unix "/media/dat_ext4/video/Galaxy Quest.avi"

Nautilus автоматически предоставит путь к фильму, поэтому ваша команда для вашего сценария divx-player bash должна удовлетворять аргументу, как показано ниже

#!/bin/bash
env WINEPREFIX="$HOME/.wine" \
    wine 'C:\windows\command\start.exe' \
    /Unix "$WINEPREFIX/dosdevices/c:/Program Files/DivX/DivX.exe" \
    /Unix "$1"
0
ответ дан 25 May 2018 в 18:19

Возможно, хотя это потенциально немного сложнее.

Если DivX появляется в качестве опции в списке «Открыть с» для ваших файлов, вы можете легко установить его по умолчанию.

Если это не так, я бы посоветовал не беспокоиться о том, чтобы пройти через неприятности.

0
ответ дан 25 May 2018 в 18:19

Другие вопросы по тегам:

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