2016-09-22 29 views
1

我想寫一個BASH腳本來輸出一個部分完成的命令,然後我可以添加參數,然後按ENTER鍵然後運行。我希望這能夠在BASH中完全實現。Bash:建立一個新的命令而不執行

例如

~> ./test.sh 
~> ls -al <CURSOR POSITION HERE> 

我發現,收盤時唯一的變量是PROMPT_COMMAND變量,它設置在內部test.sh爲「LS -al」,那麼將立即執行,一旦劇本已退出。

有沒有辦法停止立即執行,所以我可以添加,比如說* .log?

+0

我不知道如何[如何預填命令行輸入(http://stackoverflow.com/questions/10866005/how-to-prefill-command-line-input )是重複的。那裏的答案是用C寫的,而不是Bash。 – wjandrea

+2

@wjandrea這是完全相同的問題,如果有的話,應該在那裏添加一個新的答案。 「重複」不涉及答案。現在我們已經在兩個不同的地方結束了對同一問題的兩個有效答案。 –

回答

2

如何

read -e -p"$PWD> " -i"ls -al " cmd; eval "$cmd" 
+0

是的 - 這正是我以後的感謝! –

+1

但請注意,這將在新的shell中運行命令,而不是當前的shell。 – chepner

+0

@chepner:好的我修改了使用'eval'的建議。 –