我正在尝试通过PlayOnLinux为Windows启动Steam Native编写脚本。只是视频游戏只有Microsoft Windows Binary Executable。
阅读" ID"从列表中,是它不在列表中的ID然后为GNU / Linux启动Steam本机。
这个脚本的想法是用于Web浏览器,例如:Mozilla Firefox使用" steam://"协议
我把我的脚本放在这里(我来自委内瑞拉,脚本是用西班牙语制作的,如果可能的话,请不要翻译变量):
#!/usr/bin/env bash
echo '
Autor ----------------> Inukaze ( Venezuela )
Licensia -------------> GPL 2
******* Inicio : Acerca de este Script ********
Este Mini-Script es para poder iniciar Steam
Para Windows, desde un Navegador Web Nativo
para Liñux.
La idea y la funcion es para facilitar la
Instalación de varios Videojuegos que no
poseen una version nativa para Liñux
Iniciando el Steam que tengas en el prefijo
"Steam" dentro de "PlayOnLinux" e iniciando
y encolando la descarga de (los) titulo(s)
que hayas hecho clic en el navegador
******** Fin : Acerca de este Script **********
'
# Obtener el Nombre del Nucleo
Nucleo=$(uname -s)
case "$Nucleo" in
Linux) Nucleo="linux" ;;
FreeBSD) Nucleo="kfreebsd" ;;
GNU/kFreeBSD) Nucleo="kfreebsd" ;;
* ) echo "Tu Sistema Operativo -> NO ESTA SOPORTADO" ;;
esac
# Obtener la ARQUITECTURA
ARQUITECTURA=$(uname -m)
case "$ARQUITECTURA" in
x86) ARQUITECTURA="x86" ;;
i?86) ARQUITECTURA="x86" ;;
amd64) ARQUITECTURA="amd64" ;;
x86_64) ARQUITECTURA="amd64" ;;
* ) echo "Tú Arquitectura : '$ARQUITECTURA' : -> IT NOT SUPPORTED." ;;
esac
# Comprobrar que (No/)Existen los archivos y rutas, antes de proceder
if test -d "$HOME/.PlayOnLinux/wineprefix/Steam"
then
echo
if test -f "$HOME/.PlayOnLinux/wineprefix/Steam/drive_c/Program Files/Steam/steam.exe"
then
echo "Encontrado ejecutable de Steam en el prefijo predeterminado"
fi
if test -d "$HOME/.PlayOnLinux/wineprefix/Steam/drive_c/Program Files/Steam/steamapps/common"
then
echo "Encontrada Carpeta Comun de Steam"
fi
else
echo "Steam no esta instalado en el Prefijo Predeterminado"
xmessage -timeout 3 "Steam no esta instalado en el Prefijo Predeterminado"
exit 1
fi
if test -f "$HOME/.PlayOnLinux/wineprefix/Steam/playonlinux.cfg"
then
# Obtener la version de WINE y su arquitectura del Prefijo Steam dentro de PlayOnLinux ;
VERSION_WINE=$(cat "$HOME/.PlayOnLinux/wineprefix/Steam/playonlinux.cfg" | grep VERSION= | sed 's/VERSION=//g')
ARQUITECTURA_WINE=$(cat "$HOME/.PlayOnLinux/wineprefix/Steam/playonlinux.cfg" | grep ARCH= | sed 's/ARCH=//g')
else
echo "Steam no esta instalado en el Prefijo Predeterminado"
xmessage -timeout 3 "Steam no esta instalado en el Prefijo Predeterminado"
exit 1
fi
# Configurar Variables de Entornos, Rutas e Iniciar Steam para Windows :
PATH="$HOME/.PlayOnLinux/wine/$ARQUITECTURA-$ARQUITECTURA_WINE/$VERSION_WINE/bin:$PATH"
export WINESERVER="$HOME/.PlayOnLinux/wine/$Nucleo-$ARQUITECTURA_WINE/$VERSION_WINE/bin/wineserver"
export WINELOADER="$HOME/.PlayOnLinux/wine/$Nucleo-$ARQUITECTURA_WINE/$VERSION_WINE/bin/wine"
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/$Nucleo-$ARQUITECTURA_WINE/$VERSION_WINE/lib"
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Steam"
export WINEDEBUG=-all
cd "$HOME/.PlayOnLinux//wineprefix/Steam/drive_c/./Program Files/Steam"
# Lista de Videojuegos segun su IDentificador de APPlicacion en STEAM :
STEAMID=(
"204360" # Castle Crashers(TM)
"205230" # Hell Yeah! Wrath of the Dead Rabbit
"205950" # Jet Set Radio (Puede que necesites intercambiar el nombre de ambos ejecutables)
"215100" # Ragnarok Online
"218640" # Lucius
"22000" # World Of Goo - Ya esta Portado a Liñux
"222900" # Dead Island: Epidemic - La Pagina de la tienda ya no existe
"224220" # Pressure
"235720" # Cubetractor
"253900" # Knights and Merchants
"254000" # East India Company Gold - La Pagina de la tienda ya no existe
"254040" # Pirates Of Black Cove Gold - La Pagina de la tienda ya no existe
"254060" # KnightShift
"254100" # World War II: Panzer Claws
"258200" # Talisman: Prologue
"259320" # Heli Heroes
"267920" # Gun Metal
"267940" # Glacier 3: The Meltdown
"267960" # Hyper Fighters
"267980" # Hostile Waters: Antaeus Rising
"271640" # Humanity Asset
"274900" # Murder Miners
"278490" # Aveyond 3-2: Gates of Night
"279640" # The Troma Project
"283330" # Desert Thunder
"283350" # Eurofighter Typhoon
"283410" # CT Special Forces: Fire for Effect
"284950" # Pixel Puzzles: Japan
"285840" # Enemy Mind
"286440" # Rover Rescue
"292380" # Racer 8
"292390" # Realms Of The Hauting (DOSBox)
"292410" # Street Racing Syndicate
"293180" # Overcast - Walden and the Werewolf
"296910" # 8BitBoy TM
"306350" # Slipstream 5000
"307070" # Memories of a Vagabond
"307350" # Nux
"310450" # Steam & Steel : Episode 1
"311480" # Vertical Drop Heroes HD
"315430" # Polarity
"319180" # Platypus II
"321150" # Melissa K. and the Heart of Gold Collector's Edition
"323630" # Ubinota
"331710" # Why So Evil
"34270" # SEGA MegaDrive & Genesis Classics - La Pagina de la tienda ya no existe
"343360" # Particula
"344040" # Voxelized
"344130" # Cataegis : The White Wind
"347560" # Terra Incognita ~ Chapter One: The Descendant
"350810" # Pixel Puzzles 2: Anime
"351030" # Pixel Puzzles Ultimate
"351470" # Sometimes: Success Requires Sacrifice
"3590" # Plants -VS- Zombies GOTY
"37400" # Time Gentlemen, Please! and Ben There, Dan That! Special Edition Double Pack
"37420" # Time Gentlemen, Please! and Ben There, Dan That! Special Edition Double Pack
"382490" # Relic Hunters Zero
"385200" # Absconding Zatwor
"395170" # DISTRAINT
"395980" # Break Into Zatwor
"410560" # Trinium Wars
"42500" # DogFighter
"428430" # Endorlight
"447880" # Beast Blaster
"4720" # Condemned: Criminal Origins
"517320" # GunGirl2
"57690" # Tropico 4: Steam Special Edition
"6850" # Hitman 2: Silent Assassin
"7510" # X-Blades
"7520" # Two Worls II
#"91200" # Anomaly: Warzone Earth - Ya esta Portado a Liñux
#"200710" # TorchLight II - Ya esta Portado a Liñux
#"238910" # Bionic Dues ( Ya portado a Liñux )
#"253920" # Gorky 17 - Usa su propia version de Wine
#"253940" # Septerra Core - Usa su propia version de Wine
#"253980" # Enclave - Usa su propia version de Wine
#"254020" # Commander : Conquest Of the Americas Gold - La Pagina de la tienda ya no existe
#"259280" # Earth 2150 : The Moon Project - La Pagina de la tienda ya no existe
#"259300" # Earth 2150 : Lost Souls - La Pagina de la tienda ya no existe
#"259360" # Chicken Shoot 2 - La Pagina de la tienda ya no existe
#"278460" # SkyBorn - Ya esta Portado a Liñux
#"382240" # Blood Of Old (OLD VERSION) - La Pagina de la tienda ya no existe
#"38740" # EDGE - Ya esta Portado a Liñux
#"48000" # LIMBO (Ya esta Portado a Liñux)
)
# En caso de que el parametro posea algun numero de la lista
# Iniciar el Steam Nativo para Windows desde PlayOnLinux :
#IDEA 1 :
#IDEA1#STEAMWIN=$(exec wine Steam.exe -no-dwrite -no-cef-sandbox "$1" &> /dev/null)
#IDEA1# case $1 in
#IDEA1# steam://run/3590) if [ "$1" = "$@"]; then $STEAMWIN; fi ;;
#IDEA1# esac
#IDEA 2 :
#while (( ${#STEAMID[@]}+1 ))
#do
#
#IDEA 3 :
# for i in ${!STEAMID[*]}; do
#
#IDEA 4 :
# if [ "${STEAMID[*]}" = "$@" ]; then
case $1 in
*)
echo
echo 'Parametro de Lanzamiento -> '"$@"''
echo
exec wine Steam.exe -no-dwrite -no-cef-sandbox "$@" &> /dev/null
echo
echo
exit 0
;;
esac
# En caso de usar do, finalizar con "done" :
#done
# En caso de que el parametro no pesea ningun numero de la lista
# Iniciar el Steam Nativo para Liñux
# Correcion para Steam para que me deje de dar errores como :
# Could not find required OpenGL entry point :
# 'glColorMaskIndexedEXT'
# 'GLGetError'!
# 'glUseProgramStages'!
#
export PATH="/media/Compartido/Videojuegos/Gestor/Linux/Steam/Slackware64/home/bin/":$PATH
export GAME_DEBUGGER="hl2debug"
hl2debug
答案 0 :(得分:0)
如果我理解正确,您希望检查数组id
中是否包含某些STEAMID
,那么您只需使用=~
运算符与{{bash}进行简单比较1}}。例如,要检查[[ ... ]]
,您可以使用以下内容:
id=321150
如果id=321150
[[ ${STEAMID[@]} =~ $id ]] && echo "start windows: $id" || echo "use Gnu"
中存在id=321150
(确实如此),那么STEAMID
将会执行,否则echo "start windows: $id"
会执行。如果您愿意,可以根据需要使用echo "use Gnu"
而不是复合语句进行调整。但是,如果我理解你的问题,我就会检查if ... then ... else ... fi
数组中id
是否存在于STEAMID
的Windows / linux启动目的。
示例使用/输出
steam://
如果您正在寻找其他内容,并且我没有正确理解该问题,请发表评论,我很乐意进一步提供帮助。