我正在通过 SSH 设置游戏服务器,想知道是否可以执行一个可以使用参数运行的文件(如 Windows 批处理文件),而不必输入这么长时间。
我想要的是一个将执行的文件
./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128
我不必每次都输入所有内容或从 wiki 页面复制它。
只是为了向问题解决后的人们澄清,我的服务器运行的是 CentOS。
答案1
只需在游戏所在目录中放置一个简单的 shell 脚本即可
#!/bin/sh
cd $(dirname $0)
./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128
如果您想将脚本放在其他地方,则应该使用完整路径
#!/bin/sh
/path/to/srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128
答案2
因此,您需要在您的中创建一个别名.bash_profile
:
alias game="./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128"
之后source .bash_profile
或重新登录(加载新game
命令),最后game
。
答案3
添加别名后,您还可以在键盘设置中绑定一个快捷键(取决于 ofc 的发行版),以非常快速且轻松地运行它。
(如Windows+G)
答案4
csgo
在 中列出的目录中创建一个名为(或您想要键入的任何名称)的文件echo $PATH
。典型的目录是/usr/local/bin
如果您希望所有用户都能够运行该脚本,或者~/bin
(bin
在您的主目录下)如果该脚本只适合您。在脚本中写入以下内容:
#!/bin/sh
/path/to/srcds/srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128
替换/path/to/srcds
为安装程序的路径(srcds_run
可执行文件所在的目录)。
如果您使用 Windows 编辑器编辑脚本,请确保告诉它使用 Unix (LF) 行结尾; Windows (CRLF) 行结尾不起作用。
如果您"$@"
在行尾添加一个空格,则可以通过将参数传递给脚本来将参数传递给程序。
#!/bin/sh
/path/to/srcds/srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128 "$@"
如果从其他目录调用程序时找不到其文件,请先切换到其目录。
#!/bin/sh
cd /path/to/srcds &&
./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128 "$@"
保存文件后,使其可执行。在命令行上(使用保存脚本的正确路径):
chmod +x ~/bin/csgo
您现在可以通过键入命令来运行该程序csgo
。