PATH中的shell脚本是否可以用来检测输入的选项$1
发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,PATH中的shell脚本是否可以用来检测输入的选项$1,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面是例子001:#!/bin/s
千家信息网最后更新 2024年09月21日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安全错误
数据库的锁怎样保障安全
这个页面是360网络安全
京班信网络技术公司
安全风险清单和数据库建设
农行软件开发 天津地址
华为数据库服务模块单价
能表示网络安全的图片
服务器运行时间
金蝶数据库msde兼容性
无法加入网络安全插画
河南服务器硬盘多少钱
武汉数据库招聘
广东超频服务器电源
线下网络安全宣传活动
服务器集中管理软件哪个好
亚马逊远程服务器关机了怎么打开
服务器防护软件可以屏蔽ip
水果商城系统软件开发系统设计
宁德速腾网络技术
到武汉网络安全基地有没有公交车
qq存在同名数据库
吃鸡服务器租用
红猫网络技术有限公司
cdn网络安全加固培训
数据库db有多少张表
数据库国产化什么代号
网安大队开展网络安全工作
数据库 execute
关于软件开发流程图
餐饮软件开发项目计划书
嵌入式软件开发区拍照表情