例如看以下線的bash的代碼如何在執行之前編輯bash腳本的輸出?
eval `echo "ls *.jpg"`
它列出當前目錄中的所有JPG文件。現在我希望它只是將行打印到提示中,以便在執行之前對其進行編輯。 (例如鍵盤按鈕)
我該怎麼做?
原因這個問題來自於一個更爲有用的別名:
alias ac="history 2 | sed -n '1 s/[ 0-9]*//p' >> ~/.commands; sort -fu ~/.commands > ~/.commandsTmp; mv ~/.commandsTmp ~/.commands"
alias sc='oldIFS=$IFS; IFS=$'\n'; text=(); while read line ; do text=(${text[@]-} "${line}") ; done < ~/.commands; PS3="Choose command by number: " ; eval `select selection in ${text[@]}; do echo "$selection"; break; done`; IFS=$oldIFS'
alias rc='awk '"'"'{print NR,$0}'"'"' ~/.commands; read -p "Remove number: " number; sed "${number} d" ~/.commands > ~/.commandsTmp; mv ~/.commandsTmp ~/.commands'
凡ac
添加或記憶上次輸入的命令,sc
顯示可用的命令並執行它們和rc
刪除或忘記一個命令。 (你需要touch ~/.commands
之前)
如果我可以在執行它之前編輯sc
的輸出將更加有用。
這是可能的,但它需要(希望不要)用戶交互。由於腳本的目的是最小化擊鍵,我希望有另一種解決方案。 – Pascal 2010-02-17 12:45:55
那麼,爲什麼沒有腳本僞命令行與'read -p「$ PS1_this_is_nasty」-e -i「無論你想要什麼」' – dubiousjim 2010-02-17 13:09:09
也許離第一個解決方案一步之遙,但是tab-completion呢?我不想給另一個人放棄一個便利。 – Pascal 2010-02-17 15:24:25