====== Автоматизация установки eXpress ====== Скрипт копирует AppImage в каталог, откуда он затем будет запускаться, извлекает AppImage и устанавливает ярлык для запуска (.desktop), а также файл значка, затем модифицирует целевой ярлык запуска, чтобы в нём содержались актуальные пути на исполняемый файл и значок для него. ===== Скрипт express-install.sh ===== #!/bin/bash BINARY_DIR="${HOME}/.local/bin" BINARY_FILE="${BINARY_DIR}/${1}" ICON_DIR="${HOME}/.local/share/express" ICON_FILE="${ICON_DIR}/express.png" SHORTCUT_DIR="${HOME}/.local/share/applications" SHORTCUT_FILE="${SHORTCUT_DIR}/express.desktop" err() { echo "Error: ${1}" exit 0 } [ "${1}" == "" ] && err "No file specified" [ -f "${1}" ] || err "File ${1} not found" [ -d "${BINARY_DIR}" ] || mkdir -pv "${BINARY_DIR}" cp -v "${1}" "${BINARY_DIR}/" chmod +x "${BINARY_DIR}/${1}" chmod +x "${1}" echo "Extracting AppImage..." ./"${1}" --appimage-extract 1>/dev/null 2>&1 [ -d "${SHORCTUT_DIR}" ] || mkdir -pv "${SHORTCUT_DIR}" echo "Installing shorcut and icon files..." cp -v "squashfs-root/express.desktop" "${SHORTCUT_DIR}/" [ -d "${ICON_DIR}" ] || mkdir -pv "${ICON_DIR}" cp -v "squashfs-root/express.png" "${ICON_DIR}/" echo "Patching the shorctut file..." E_BINARY_FILE=$(echo "${BINARY_FILE}" | sed 's/[\/&]/\\&/g') sed -i "s/^Exec=.*$/Exec=$E_BINARY_FILE/" "${SHORTCUT_FILE}" E_ICON_FILE=$(echo "${ICON_FILE}" | sed 's/[\/&]/\\&/g') sed -i "s/^Icon=.*$/Icon=$E_ICON_FILE/" "${SHORTCUT_FILE}" echo "Removing the extracted AppImage files..." rm -rf "squashfs-root/" echo "Done!" ===== Пример запуска ===== bash express-install.sh eXpress-3.37.45.AppImage