Установщик установил систему на флешку, а не на основной жесткий диск

Это основано на превосходном скрипте @ Flint.

Сначала я попробовал переменную "Z:"%U в конце поля рабочего файла Exec= для программ Wine. Он работал нормально, пока я не открыл программу без указанного файла. Винные программы жаловались на отсутствие файла, потому что строка Exec= указывала на диск Z: это явно не файл, а абсолютный путь к файлу. File not found: Z: или похожие сообщения, появившиеся в программе Wine. Бит раздражает.

Проблема с "Z:"%U заключается в том, что она не является условной переменной, если там используется Z:. Тем не менее, Wine абсолютно требует Z: потому что в противном случае он не может найти правильные пути к файлу.

Ваш скрипт делает всю вещь "Z:"%U условной. Скрипт выполняет задание точно так, как я хотел.

Однако сценарий должен учитывать все файлы exe, написанные в верхнем регистре. К настоящему времени он не может указывать файлы MS Office (docx, pptx ...) на MS Office 2010, потому что все исполняемые программы исполняются как WINWORD.EXE или POWERPNT.EXE. Конечно, исполняемые файлы можно было переименовать в нижнем регистре, но я предпочитаю более универсальное решение, вместо того чтобы переименовывать отдельные exe для каждой программы.

Грязное и универсальное решение заключается в изменении кода сценария, например:

#!/bin/bash

allargs=("$@")

fixpath=0
for idx in "${!allargs[@]}"; do
    arg="${allargs[$idx]}"

    if [[ $fixpath -eq 0 ]]; then
        # fix file paths only after the first executable is found in arg
        if [[ "$arg" == *.exe ]]; then
            fixpath=1
        fi
        if [[ "$arg" == *.EXE ]]; then
            fixpath=1
        fi
        continue
    elif [[ $fixpath -eq 1 ]]; then
        # if arg starts with '/' and it's a path that exists on host
        # precede the path with drive 'Z:'
        if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
            allargs[$idx]="z:${arg//\//\\}"
        fi
    fi
done

exec env "${allargs[@]}"

Оператор or по какой-то причине не работал. Я уверен, что есть более элегантный способ добиться такого же результата.

0
задан 9 July 2012 в 23:01

6 ответов

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 2 August 2018 в 00:23

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 4 August 2018 в 15:51

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 6 August 2018 в 00:30

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 7 August 2018 в 17:54

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 10 August 2018 в 06:45

Создайте USB-накопитель или загрузочный компакт-диск, если у вас есть запасной накопитель или система. Просто следуйте инструкциям в ubuntu . См. Правую сторону для получения информации конкретно о вашей ОС.

-2
ответ дан 15 August 2018 в 18:38

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

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