如何使用 telnetbbs 为 DOSBox 设置环境变量

如何使用 telnetbbs 为 DOSBox 设置环境变量

我正在寻找从 perl 脚本(用于启动 dosbox BBS 的前端)实现 SDL 环境变量的确切方法。

我从这个链接找到了正确的方法:完全无头运行 dosbox

我只是不确定如何从 perl 脚本内部实现它。

export SDL_VIDEODRIVER=dummy

我正在用这个脚本启动 dosbox:telnetbbs-0.5

这是标题。我猜想它应该放在第一部分之前或之后的某个地方。

#!/usr/bin/perl -wT
BEGIN {
        delete @ENV{qw(IFS CDPATH ENV BASH_ENV PATH)};
        $ENV{PATH} = "/bin:/usr/bin";
        $|++;
#        $SIG{__DIE__} = sub { require Carp; Carp::confess(@_); }
      }

我以为我可以手动编辑脚本的开头来设置变量,但我遇到了困难。

我尝试过添加

$sdl = "export SDL_VIDEODRIVER=dummy";
system($sdl);

也许这是从 perl 脚本运行命令的正确语法,但不是设置 SDL 环境变量的方法。

我收到错误“无法执行导出”:./telnetbbs.pl 上没有这样的文件或目录”

我不想全局更改 SDL,只想在执行脚本时更改,因为我可能想在本地启动 BBS,因为我的 pi 已连接到显示器和键盘。我只是不想让它占用用户桌面会话。最后,我想创建一个单独的用户,并让其执行脚本并在连接时启动 dosbox,同时能够以其他用户身份登录。

任何帮助将不胜感激。

答案1

我浏览了一下 Perl 脚本。我觉得你应该编辑配置文件的这一部分,而不是 Perl 脚本:

##
## This is the command that will launch dosbox and pass it the configuration
## file.  You can add custom dosbox options to the command line below.
##
bbs_cmd = DISPLAY=__DISPLAY__  /usr/bin/dosbox -conf 

添加环境变量DISPLAY

bbs_cmd = DISPLAY=__DISPLAY__ SDL_VIDEODRIVER=dummy /usr/bin/dosbox -conf 

这确保环境变量与 DOSBox 绑定。由于您只需要它用于单个命令,因此无需在 Perl 代码中导出它。

相关内容