PATH中的shell脚本是否可以用来检测输入的选项$1
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,PATH中的shell脚本是否可以用来检测输入的选项$1,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面是例子001:#!/bin/s
千家信息网最后更新 2025年01月28日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安全错误
数据库的锁怎样保障安全
深圳千聚网络技术有限公司
晋城网络技术销售价格
如何做好网络安全应急演练
南京擎天科技工业互联网
林业局计算机网络安全设备
怎么修改服务器的处理器利用个数
中宁县app软件开发价格
守护网络安全的图片
微信平台服务器配置
应用数据库技术主要目的
网络安全拓展报告
动易cms默认数据库
网络安全道哥面试阿里
死性不改伴奏软件开发
企业网络安全的底线是什么
国外免费php服务器
人工智能识别网络安全
数据库调整列显示宽度
tbc玩家数据库
上海工业软件开发价格大全
获取链接数据库的某个字段
我的世界超宇宙服务器指令
数据库的安全性与完整性要求
网络技术员 弱电技术员
中芯国际华为服务器
电商平台app软件开发价钱
数据库应用第四章答案
sql数据库改变数据类型
河北远东通信软件开发待遇
mpp数据库商用