完整的脚本在gitlab上可用
开始时,steam-lr -g menu
它会显示使用whiptail
. 此菜单中的项目按 排序game id
。
我的问题:有没有办法订购它们game name
?
物品是如何产生的:
function build_gamemenu {
i=0
for f in ~/.steam/steam/steamapps/*.acf; do
game_name=$(cat $f | grep \"name\" | sed 's/.*"name"\s*//;s/"//;s/"//')
game_id=$(cat $f | grep \"appid\" | sed 's/.*"appid"//;s/"//;s/"//;s/^[ \t]*//')
gamemenu[i]="$game_id"
gamemenu[i+1]="$game_name"
((i+=2))
done
}
- 列出的文件夹中的文件名看起来像
manifest_GAME_ID.acf
(即:manifest_1234.acf) $game_id
总是一个数字$game_name
可能包含空格和特殊字符
物品如何传递给whiptail:
function menu {
# (...)
game_id=$(whiptail --notags --backtitle "$version" --title "SteamLR" --menu "Select a game:" $w_h $w_w $w_l "${gamemenu[@]}" 2>&1 >/dev/tty)
# (...)
}
${gamemenu[@]}
生成正确的计算字符串$game_id "$game_name"
。到目前为止,这是我找到的唯一方法。