コマンドが常に git コマンドであると想定するように bash を作成できますか?
つまり:
私が書いた場合push origin master
、それは実行されgit push origin master
ますか?
注: git bash (Windows 環境) で使用するので、通常のコマンド (ls、cd など) は必要ありません。
代わりに、この小さな git シェルを試してみてください。
gitsh () {
while read -r -p "gitsh> " -a GITCOMMAND; do
git "${GITCOMMAND[@]}"
done
}
その関数が定義された後、それを 1 回実行すると、無限ループに入り、コマンド ラインを読み取り、それをオプションとしてコマンドに渡しますgit
。
編集: gniourf_gniourf で提案されているよう-e
に、コマンドにオプションを追加すると、履歴を取得および編集できる優れた Readline ベースの環境が得られます。read
よく使用されるコマンドのエイリアスを追加できます。たとえば、次のpush
ようになりますgit push
。このソリューションでは、使用しているすべてのコマンドを指定する必要がありますが、何も壊してはなりません。
「git bash」が通常の bash のようなものであると仮定すると、次のcommand_not_found_handle
関数を使用します。
function command_not_found_handle {
command git "$0" "$@"
}
http://www.gnu.org/software/bash/manual/bashref.html#Command-Search-and-Execution
git 不注意なコマンドを送信する可能性はありますが、それが質問で求めていることです。
push、commit などの名前のスクリプトを PATH に追加できます。このように、シェルにはプッシュ、コミットなどの「コマンド」があります。これは、bash だけでなく、使用しているシェルで動作するはずです。