1
我的bash腳本簡化生產一些長端命令,例如如何從的bash腳本設置終端電流輸入
git diff "file.one" "file.two" "file.million"
之後,我希望今年建造命令不會從腳本中運行,但將其設置爲終端輸入,用戶可以按「Enter」鍵並運行。這個我會做到以下幾點:
- 用戶可以運行之前編輯命令它
- 司令部將成爲歷史
是否有可能呢?
我的bash腳本簡化生產一些長端命令,例如如何從的bash腳本設置終端電流輸入
git diff "file.one" "file.two" "file.million"
之後,我希望今年建造命令不會從腳本中運行,但將其設置爲終端輸入,用戶可以按「Enter」鍵並運行。這個我會做到以下幾點:
是否有可能呢?
一種方式做同樣的事情是將項目推入歷史:
history -s 'command to store'
在此之後,用戶將不得不按↑回到命令和編輯/執行它。
注:如果你做到這一點,必須將腳本來源不執行,即用戶必須運行. /path/to/script.sh
,而不是僅僅/path/to/script.sh
。
讓用戶編輯命令在腳本執行前,你可以是這樣的:
command='git diff "file.one" …'
read -e -i "$command" command
eval "$command"
的-e
選項使用readline的,這樣的文件名完成的作品和-i
選項預填充輸入字段與提供的文本。
之後您可以選擇執行history -s "$command"
(同樣,腳本必須是源 d才能正常工作)。
它可以在OSX上工作嗎?我讀到:-i:無效的選項 – karabara