Shell脚本——输出环境变量PATH包含的所有目录以及其中所有可执行文件

方法一:for循环

#!/bin/bash
IFS=$IFS':'
IFS=':'
for folder in $PATH
do
  echo "$folder:"
  for f in $folder/*
  do
    if [ -x $f ];then
      echo " $f"
    fi
  done
done

方法二:递归函数(1)

#!/bin/bash
file_list () {
    
    
for f in $1/*
do
  if [ -d $f ];then
    echo "$2$f"
    file_list "$f" " $2"
  elif [ -x $f ];then
    echo "$2$f"
  fi
done
}

IFS=$IFS':'
for folder in $PATH
do
  echo "$folder:"
  file_list "$folder" "  "
done

方法二:递归函数(2)

#!/bin/bash
file_list () {
    
    
for f in `ls $1`
do
  if [ -d "$1/$f" ];then
    echo "$2$f"
    file_list "$1/$f" " $2"
  elif [ -x "$1/$f" ];then
    echo "$2$f"
  fi
done
}

IFS=$IFS':'
for folder in $PATH
do
  echo "$folder:"
  file_list "$folder" "  "
done

猜你喜欢

转载自blog.csdn.net/ZG_66/article/details/108182816