只是做爲一個shell的小小練習和平常統計用,瞎折騰的過程當中也是摸到了獲取子shell返回值的幾種方法;
確定還有別的方法,跟進程間的通訊相關,但願你能提出建議和補充,謝謝~shell
#! /bin/bash #檢查參數數量是否符合要求 if [ $# -ne 1 ] then echo How to use: $0 ---> basepath! exit -1 fi #獲取傳入的路徑參數 path=$1 #聲明一個關聯數組 declare -A typearray while read fileinfo do ftype=`file -b "$fileinfo" | cut -d , -f 1` let typearray["$ftype"]++ done< <( find $path -type f -print ) echo '==File==Type==Stastics==' for ftype in "${!typearray[@]}" do echo $ftype : ${typearray["$ftype"]} done
#這段放在while以前 if [ ! -p npipe ] then mkfifo -m 777 npipe fi #替換掉得到ftype值那裏 ( file -b "$fileinfo" | cut -d , -f 1 > npipe & ) read ftype<npipe
#替換掉得到ftype值那裏 ( file -b "$fileinfo" | cut -d , -f 1 )>temp.txt read ftype<temp.txt
#替換掉得到ftype值那裏 read type << HERE `file -b "$fileinfo" | cut -d , -f 1` HERE