用于运行带有参数的程序的 Shell 脚本

用于运行带有参数的程序的 Shell 脚本

我正在通过 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如果您希望所有用户都能够运行该脚本,或者~/binbin在您的主目录下)如果该脚本只适合您。在脚本中写入以下内容:

#!/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

相关内容