命令包和完成
回答
do_something() {
cp -r folder-"$1" ~/temp
}
好的,但我有一個標籤+選項卡自動完成的麻煩。 當我使用標籤+標籤Bash寫入文件夾 -
bash write = bash建議在這種情況下寫入。 –
當然。修改自動完成功能。不,我不知道如何。 –
正如伊格納西奧巴斯克斯 - 艾布拉姆斯已經提到,不使用別名。實際上,它甚至寫在Aliases section of the reference manual:
對於幾乎所有目的,shell函數都優於別名。
所以你需要一個功能:
do_something() {
[[ -n $1 ]] && cp -rnvt ~/test folder-"$1"
}
如果你不喜歡我寫的cp
其所有的選項的方式,只是將其刪除。對於信息:
-n
以便不覆蓋現有文件/文件夾-v
,以便詳細- 該目錄下面
-t
是目標目錄
(我喜歡請寫下我的cp
,你的cp
版本可能無法處理,但很可能)。
還有一個檢查,以確保在啓動cp
之前給出參數。
到目前爲止沒有比其他答案更好的了。關於完成,這裏是你可以做什麼:
_do_something() {
COMPREPLY=($(
shopt -s nullglob extglob
files=(folder-+([[:digit:].])/)
for ((i=0;i<${#files[@]};++i)); do
files[i]=${files[i]#folder-}
files[i]=${files[i]%/}
done
compgen -W "${files[*]}" -- "${COMP_WORDS[COMP_CWORD]}"
))
return 0
}
complete -F _do_something do_something
將這個在您的.bashrc
(即使它可能不是完井最好的地方,你會調整這一切,當你經驗更豐富)和享受!
從這裏開始,你會想要擴展它,直到它變成100000行精彩的腳本。例如我在cp
中加入-n
選項(我相信這是一個很酷的安全功能)。然後,您可以將選項添加到do_something
功能,例如選項--force
將刪除此-n
選項。我不會爲你做這件事(它超出了這個答案的範圍),但這並不難。然後確保您也相應地更改完成功能!其樂無窮。
- 1. 命令成功完成
- 2. Python popen命令。等待命令完成
- 3. 等待命令完成
- 4. 等待命令完成
- 5. 執行命令完成角
- 6. set命令完成運行
- 7. 使用命令輸出爲zsh生成自動完成命令
- 8. 改進的IDE'ish Python命令行包括代碼完成?
- 9. 從Java執行命令,等待命令完成
- 10. 動畫命令完成後的調用命令
- 11. elisp的接近*異步Shell命令*命令後窗口完成
- 12. AutoIt:完成前一個命令後運行下一個命令
- 13. 命令完成後獲取命令提示符窗口內容
- 14. 上一個命令完成後執行下一個命令
- 15. 終端命令沒有完成
- 16. 線完成與自定義命令
- 17. 回聲「。」直到命令完成執行
- 18. 自動完成命令行參數
- 19. 使用yargs設置命令行完成
- 20. Vim命令中的Tab完成
- 21. 等待shell命令來完成
- 22. Linux命令將無法完成
- 23. 等到命令完成批處理
- 24. 如何檢查命令是否完成?
- 25. awk'/^/'空輸出(內部完成命令)
- 26. 命令行完成在Vim中
- 27. 等待終端命令完成python
- 28. 自動完成工具命令選項
- 29. CMD - 等待並行命令行完成?
- 30. BACKUP未能完成命令BACKUP DATABASE
關閉請求:問題也是關於編程完成! –