我可以讓bash假設命令始終是git命令嗎?如何讓bash假設所有命令都是git命令?
我的意思是:
如果我寫push origin master
那就執行git push origin master
?
注意:我會在git bash(Windows環境)中使用它,所以我不需要常規命令(ls,cd等)來工作。
我可以讓bash假設命令始終是git命令嗎?如何讓bash假設所有命令都是git命令?
我的意思是:
如果我寫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
}
該函數的定義後,一旦運行,它會坐在一個無限循環, 讀取命令行並將其傳遞作爲git
命令的選項。
編輯:添加-e
選項的read
命令,由gniourf_gniourf建議,爲您提供了一個很好的基礎的ReadLine的環境,你可以檢索和編輯的歷史。
您可以添加常用命令的別名,例如push
將變成git push
等。此解決方案需要指定您正在使用的所有命令,但不應該破壞任何內容。
您可以將名爲push,commit等的腳本添加到PATH中。這樣你的shell就會推送,提交等「命令」。這應該適用於你正在使用的任何shell,而不僅僅是bash。
假設「混帳慶典」是像普通的bash,使用command_not_found_handle
功能:
function command_not_found_handle {
command git "$0" "[email protected]"
}
http://www.gnu.org/software/bash/manual/bashref.html#Command-Search-and-Execution
發送混帳粗心大意的指令的可能性是存在的,但是這是你問在題。
我正在考慮這種方法,但它存在''PATH'中存在且存在於git中的命令的缺陷,例如'rm' ... –
這顯然是一個非常好的答案。用'-e'選項來讀''是完美的。 –
非常真實。我經常不使用'-e',所以我沒有考慮它。 – chepner