パラメータを使用してプログラムを実行するためのシェルスクリプト

パラメータを使用してプログラムを実行するためのシェルスクリプト

私は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

ゲームがあるディレクトリに簡単なシェルスクリプトを置きます。

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

関連情報