麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

用來檢測輸入的選項$1是否在PATH中的shell腳本

2020-07-27 19:01:31
字體:
來源:轉載
供稿:網友

今天無意中發現一本挺有意思的shell編程的書,是e文的,內容是101個shell案例,堅持明天看一個,寫點心得。
下面是例子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。我想這腳本還有需要完善的地方。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美不卡在线 | 人禽l交免费视频观看 视频 | 羞羞的动漫在线观看 | 欧美一级片网站 | 黄污在线看| 看国产精品 | 鲁丝片一区二区三区免费入口 | 黄色av免费网站 | 玖草在线资源 | 久久久久久久91 | 国产色视频免费 | 在线播放免费人成毛片乱码 | 精品一区二区三区毛片 | 国产一级性生活视频 | 国产一区二区视频在线播放 | 一级片999| 92看片淫黄大片一级 | 精品一区二区三区四区在线 | 欧美日本色| 国产午夜免费 | 一级在线免费观看视频 | 狠狠色噜噜狠狠狠米奇9999 | 九九精品视频观看 | 久久久久在线观看 | 一级毛片免费版 | 视频一区国产精品 | 日本aaaa片毛片免费观看视频 | 九九久久视频 | 鲁久久 | a网在线 | 毛片三区| 欧美高清第一页 | jizzjizzjizzjizz国产 | 亚洲白嫩在线观看 | 青青草在线免费观看 | 99国产精品自拍 | 99精品视频在线导航 | 欧美精品成人一区二区三区四区 | 色悠悠久久久久 | 久久久久久久久久亚洲 | 日韩视频中文 |