PATH中的shell脚本是否可以用来检测输入的选项$1
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,PATH中的shell脚本是否可以用来检测输入的选项$1,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面是例子001:#!/bin/s
千家信息网最后更新 2025年11月14日PATH中的shell脚本是否可以用来检测输入的选项$1
PATH中的shell脚本是否可以用来检测输入的选项$1,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
下面是例子001:
#!/bin/sh# inpath - Verifies that a specified program is either valid as is,# or that it can be found in the PATH directory list.in_path(){ # Given a command and the PATH, try to find the command. Returns # 0 if found and executable, 1 if not. Note that this temporarily modifies # the IFS (input field separator) but restores it upon completion. cmd=$1 path=$2 retval=1 oldIFS=$IFS IFS=":" for directory in $path do if [ -x $directory/$cmd ] ; then retval=0 # if we're here, we found $cmd in $directory fi done IFS=$oldIFS return $retval}checkForCmdInPath(){ var=$1 # The variable slicing notation in the following conditional # needs some explanation: ${var#expr} returns everything after # the match for 'expr' in the variable value (if any), and # ${var%expr} returns everything that doesn't match (in this # case, just the very first character. You can also do this in # Bash with ${var:0:1}, and you could use cut too: cut -c1. if [ "$var" != "" ] ; then if [ "${var%${var#?}}" = "/" ] ; then if [ ! -x $var ] ; then return 1 fi elif ! in_path $var $PATH ; then return 2 fi fi} if [ $# -ne 1 ] ; then echo "Usage: $0 command" >&2 ; exit 1ficheckForCmdInPath "$1"case $? in 0 ) echo "$1 found in PATH" ;; 1 ) echo "$1 not found or not executable" ;; 2 ) echo "$1 not found in PATH" ;;esacexit 0这脚本目的是用来检测输入的选项$1是否在PATH中。
这脚本有几个地方值得注意的:
1)它运用了函数嵌套,在checkForCmdInPath里嵌套了in_path函数。
2)if [ "${var%${var#?}}" = "/" ] 这语句中的${var%${var#?}}是显示变量的第一个字符,也可以用${varname:1:1} 或$(echo $var | cut -c1)替代。
3) elif ! in_path $var $PATH ; then 这意思是如果in_path $var $PATH 执行结果不为0的话则
问题:
发现输入 echo , echo_err, /etco_err 都返回正确结果,但输入 /etc/echo_right (存在着执行文件但不在PATH中)却返回found in PATH。我想这脚本还有需要完善的地方。
看完上述内容,你们掌握PATH中的shell脚本是否可以用来检测输入的选项$1的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
脚本
输入
检测
问题
内容
函数
地方
方法
更多
结果
束手无策
为此
例子
原因
变量
字符
对此
意思
技能
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
泰拉瑞亚现在在运行的服务器
金山区工业软件开发预算
危害网络安全罪第一个被判
虚拟主机数据库bak还原
app软件开发说明书模板
数据库查找相同数据
数据库多对多例子
微软云如何购买轻量服务器
顺德arm测试软件开发
家庭网络安全检测软件
网络安全说党课
资源环境遥感数据库
服务器网卡和台式机
昆山专业软件开发服务电话
排查网络安全方案
服务器怎么做挂机宝
win服务器安全差
2021年首都网络安全日
sql 数据库 字段
服务器格式化后找不到系统
软件开发哪个方面好用
沈阳科技学院互联网金融
十大互联网科技股排名
郑州中航软件开发led屏
网络通但连不上数据库
客户端网络安全防护措施
数据库生成 form
徐州万商来朝网络技术有限公司
数据库串读
机房网络安全事故案例