返回顶部
首页 > 资讯 > 精选 >PATH中的shell脚本是否可以用来检测输入的选项$1
  • 946
分享到

PATH中的shell脚本是否可以用来检测输入的选项$1

2023-06-09 17:06:10 946人浏览 独家记忆
摘要

PATH中的shell脚本是否可以用来检测输入的选项$1,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面是例子001:#!/bin/sh# inpath 

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的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: PATH中的shell脚本是否可以用来检测输入的选项$1

本文链接: https://lsjlt.com/news/256951.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作