ls
只显示文件或者文件夹
只显示文件夹:ls -l | grep ^d
只显示文件:ls -l | grep ^-
获取目录下所有文件夹的名称并输出
#方法一
dir=$(ls -l /usr/ |awk '/^d/ {print $NF}')
for i in $dir
do
echo $i
done
方法二
for dir in $(ls /usr/)
do
[ -d $dir ] && echo $dir
done
方法三
ls -l |awk '/^d/ {print $NF}' ## 其实同方法一,直接就可以显示不用for循环
shell解决的小需求
统计Shell脚本执行时间
统计Shell脚本执行时间,帮助分析改进脚本执行
方法一:用 date 相减
#!/bin/bash
startTime=`date +%Y%m%d-%H:%M:%S`
startTime_s=`date +%s`
endTime=`date +%Y%m%d-%H:%M:%S`
endTime_s=`date +%s`
sumTime=$[ $endTime_s - $startTime_s ]
echo "$startTime ---> $endTime" "Total:$sumTime seconds"
方法二:用 time 工具
time sh xxx.sh
# 会返回3个时间数据
# real 该命令的总耗时, 包括user和sys及io等待, 时间片切换等待等等
# user 该命令在用户模式下的CPU耗时,也就是内核外的CPU耗时,不含IO等待这些时间
# sys 该命令在内核中的CPU耗时,不含IO,时间片切换耗时.