Ярлыки на Рабочем столе при установке через Wine

countmein

New member
Сообщения
326
#21
Код скрипта может быть таким:
Код:
#!/bin/bash

filepath=$1
text=$(<"$filepath")
echo "${text//\\\\ /\\ }" > "$filepath"
Тут путь к файлу передаётся как аргумент скрипту. Можно, конечно, его и прописать вместо $1 (в кавычках, если он с пробелами). Файл скрипта нужно сделать исполняемым (можно через свойства файла, разрешить пользователю выполнение). Расширение обычно делают .sh.
 

oko

New member
Сообщения
1 247
#22
to sfx09
Можно через конвейер команд bash и утилиту sed: sed -i 's/Рабочий\\\\/Рабочий/g' new.desktop && sed -i 's/.lnk/.lnk\"/g' new.desktop && sed -i 's/\/Unix /\/Unix \"/g' new.desktop
Пример специально упростил:
  • конструкция sed -i - в каком файле искать и выполнять замену (в примере файл - new.desktop)
  • конструкция 's/что-искать/на-что-заменить/g', где /s - объявление начала поиска, /g - рекурсивный поиск по всему телу файла
  • первое упоминание символа \ - это экранирование спецсимволов, поэтому поиск строки Рабочий\\ превращается в Рабочий\\\\
  • дальше по аналогии ищем начало строки (.lnk) и конец строки (/Unix ), которую нужно заключить в кавычки (")
[Desktop Entry]
Name=Заполнитель
Exec=env WINEPREFIX="/home/sfx/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix "/home/sfx/.wine/dosdevices/c:/users/Public/Рабочий стол/Заполнитель.lnk"
Type=Application
StartupNotify=true
Path=/home/sfx/.wine/dosdevices/c:/ALTA
Icon=C32A_zapoln.0
StartupWMClass=zapoln.exe
Можно это в bash-скрипт вложить, можно напрямую из командной строки запускать, указав путь к нужному desktop-файлу...
А можно изучить приведенную выше ссылку, мануал по sed и еще одной утилите awk и сделать куда более элегантный и многофункциональный скрипт...