命令包和完成
回答
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
关闭请求:问题也是关于编程完成! –