2017-02-27 81 views
1

我的bash腳本簡化生產一些長端命令,例如如何從的bash腳本設置終端電流輸入

git diff "file.one" "file.two" "file.million" 

之後,我希望今年建造命令不會從腳本中運行,但將其設置爲終端輸入,用戶可以按「Enter」鍵並運行。這個我會做到以下幾點:

  1. 用戶可以運行之前編輯命令它
  2. 司令部將成爲歷史

是否有可能呢?

回答

0

一種方式做同樣的事情是將項目推入歷史:

 
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才能正常工作)。

+0

它可以在OSX上工作嗎?我讀到:-i:無效的選項 – karabara