我想寫一個BASH腳本來輸出一個部分完成的命令,然後我可以添加參數,然後按ENTER鍵然後運行。我希望這能夠在BASH中完全實現。Bash:建立一個新的命令而不執行
例如
~> ./test.sh
~> ls -al <CURSOR POSITION HERE>
我發現,收盤時唯一的變量是PROMPT_COMMAND變量,它設置在內部test.sh爲「LS -al」,那麼將立即執行,一旦劇本已退出。
有沒有辦法停止立即執行,所以我可以添加,比如說* .log?
我想寫一個BASH腳本來輸出一個部分完成的命令,然後我可以添加參數,然後按ENTER鍵然後運行。我希望這能夠在BASH中完全實現。Bash:建立一個新的命令而不執行
例如
~> ./test.sh
~> ls -al <CURSOR POSITION HERE>
我發現,收盤時唯一的變量是PROMPT_COMMAND變量,它設置在內部test.sh爲「LS -al」,那麼將立即執行,一旦劇本已退出。
有沒有辦法停止立即執行,所以我可以添加,比如說* .log?
如何
read -e -p"$PWD> " -i"ls -al " cmd; eval "$cmd"
是的 - 這正是我以後的感謝! –
但請注意,這將在新的shell中運行命令,而不是當前的shell。 – chepner
@chepner:好的我修改了使用'eval'的建議。 –
我不知道如何[如何預填命令行輸入(http://stackoverflow.com/questions/10866005/how-to-prefill-command-line-input )是重複的。那裏的答案是用C寫的,而不是Bash。 – wjandrea
@wjandrea這是完全相同的問題,如果有的話,應該在那裏添加一個新的答案。 「重複」不涉及答案。現在我們已經在兩個不同的地方結束了對同一問題的兩個有效答案。 –