![shell函数的作用和用途是什么?使用声明 -F 列出](https://linux22.com/image/143206/shell%E5%87%BD%E6%95%B0%E7%9A%84%E4%BD%9C%E7%94%A8%E5%92%8C%E7%94%A8%E9%80%94%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%E4%BD%BF%E7%94%A8%E5%A3%B0%E6%98%8E%20-F%20%E5%88%97%E5%87%BA.png)
我正在尝试快速启动我的 Linux (Centos) 知识,并尝试了解 列出的“默认”Shell 函数是什么declare -F
。不知道这些函数叫什么,我只是将它们标记为“默认”。我用谷歌搜索了它,但我得到的是关于脚本的。有没有文章解释它们的用途、位置(在哪个文件中定义)、目的和用法。或者有人可以写一篇简短的文章吗?从外观上看,它们就像公用事业。
例如;declare -f _have
PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &>/dev/null
是type $1
做什么的?
顺便说一句,我从 shell 提示符创建了一个function App1 ()
,然后{ ls }
,当我使用declare -f App1
find检查时LS已经成为了ls --color=auto
。
答案1
type
是 bash 的内置命令,因此在手册中进行了描述。您的_have
函数搜索您的路径和 3 个额外目录以查看您是否有程序(或别名或函数),并返回 true 或 false 值。
您的“默认”函数在启动时读取的文件读取的文件中声明。你可能会发现如何找到定义bash函数的文件?有帮助。它们的存在是因为将 Centos 组合在一起的人认为它们很有用。
答案2
感谢伊卡洛斯。我发现type
是一个命令,但由于没有;
作为分隔符,我认为它是其他东西。刚刚测试了VAR=Apple ls
和VAR=Apple ; ls
,结果是一样的,现在我知道;
不需要了。但现在我想知道有什么区别吗?
找到从哪里开始;/etc/profile.d/bash_completion.sh
, 然后 /usr/share/bash-completion/bash_completion
。
谷歌搜索并找到了这个https://github.com/scop/bash-completion
谢谢!