用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
物联网
›
物联网
›
bash中怎样区分系统命令和自界说函数
bash中怎样区分系统命令和自界说函数
惊雷无声
论坛元老
|
2025-3-22 03:22:40
|
显示全部楼层
|
阅读模式
楼主
主题
1837
|
帖子
1837
|
积分
5511
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在 Bash 中,系统命令和自界说函数可以通过以下几种方式来区分:
利用 type 命令
type 命令可以表现一个命令的类型,资助区分系统命令、别名、函数、内置命令等。
# 检查系统命令
type ls
# 输出:ls is /bin/ls
# 检查自定义函数
myfunc() { echo "This is a custom function"; }
type myfunc
# 输出:myfunc is a function
复制代码
常见输出类型
系统命令:is /path/to/command(比方 ls is /bin/ls)
别名:is aliased to …
内置命令:is a shell builtin
函数:is a function
利用 command -v
command -v 可以表现命令的路径或类型,类似于 type,但输出更简洁。
# 检查系统命令
command -v ls
# 输出:/bin/ls
# 检查自定义函数
myfunc() { echo "This is a custom function"; }
command -v myfunc
# 输出:myfunc
复制代码
输出说明
系统命令:输出命令的路径(比方 /bin/ls)。
函数:输出函数名(比方 myfunc)。
利用 declare -f
declare -f 可以列出全部自界说函数,或者表现特定函数的界说。
# 列出所有自定义函数
declare -f
# 检查特定函数
myfunc() { echo "This is a custom function"; }
declare -f myfunc
# 输出:
# myfunc ()
# {
# echo "This is a custom function"
# }
复制代码
利用 which
which 可以查找系统命令的路径,但无法识别函数。
# 检查系统命令
which ls
# 输出:/bin/ls
# 检查自定义函数
myfunc() { echo "This is a custom function"; }
which myfunc
# 输出:(无输出,因为 which 无法识别函数)
复制代码
利用 compgen
compgen 可以列出全部可用的命令、别名、函数等。
# 列出所有函数
compgen -A function
# 列出所有系统命令
compgen -A command
复制代码
检查函数是否存在
通过 declare -F 可以检查某个函数是否已界说。
myfunc() { echo "This is a custom function"; }
if declare -F myfunc > /dev/null; then
echo "myfunc is a function"
else
echo "myfunc is not a function"
fi
复制代码
总结
方法 功能 适用场景
type 表现命令的类型(系统命令、函数、别名等) 通用检查
command -v 表现命令的路径或名称 简洁检查
declare -f 列出或表现函数的界说 检查函数界说
which 查找系统命令的路径 仅检查系统命令
compgen 列出全部命令、别名、函数等 批量检查
declare -F 检查函数是否已界说 判断函数是否存在
通过以上方法,可以轻松区分系统命令和自界说函数。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
惊雷无声
论坛元老
这个人很懒什么都没写!
楼主热帖
记一次实战 Shiro反序列化内网上线 ...
基于 Sealos 的镜像构建能力,快速部署 ...
蚂蚁金服杨军:蚂蚁数据分析平台的演进 ...
Linux之iptables(NAT表)——实验篇 ...
1亿条数据批量插入 MySQL,哪种方式最 ...
超融合走向红海,下一代超融合是新蓝海 ...
联合评测 DapuStor Roealsen5 NVMe SSD ...
【学习笔记】WPF-02:XMAL基础 ...
Neo4j
学习TraceLogging事件,使用ETW记录, ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
SQL-Server
快速回复
返回顶部
返回列表