ls

只显示文件或者文件夹
只显示文件夹:ls -l | grep ^d
只显示文件:ls -l | grep ^-

获取目录下所有文件夹的名称并输出
#方法一

  1. dir=$(ls -l /usr/ |awk '/^d/ {print $NF}')
  2. for i in $dir
  3. do
  4. echo $i
  5. done

方法二

  1. for dir in $(ls /usr/)
  2. do
  3. [ -d $dir ] && echo $dir
  4. done

方法三
ls -l |awk '/^d/ {print $NF}' ## 其实同方法一,直接就可以显示不用for循环

shell解决的小需求

统计Shell脚本执行时间

统计Shell脚本执行时间,帮助分析改进脚本执行
方法一:用 date 相减

  1. #!/bin/bash
  2. startTime=`date +%Y%m%d-%H:%M:%S`
  3. startTime_s=`date +%s`
  4. endTime=`date +%Y%m%d-%H:%M:%S`
  5. endTime_s=`date +%s`
  6. sumTime=$[ $endTime_s - $startTime_s ]
  7. echo "$startTime ---> $endTime" "Total:$sumTime seconds"

方法二:用 time 工具
time sh xxx.sh
# 会返回3个时间数据
# real 该命令的总耗时, 包括user和sys及io等待, 时间片切换等待等等
# user 该命令在用户模式下的CPU耗时,也就是内核外的CPU耗时,不含IO等待这些时间
# sys 该命令在内核中的CPU耗时,不含IO,时间片切换耗时.