#!/bin/bash
# Script to output the total size of requested filetype recursively
# Error out if no file types were provided
if [ $# -lt 1 ]
then
echo "Syntax Error, Please provide at least one type, ex: sizeofTypes {filetype1} {filetype2}"
exit 0
fi
#set first filetype
types="-name *."$1
#loop through additional filetypes and append
num=1
while [ $num -lt $# ]
do
((num++))
types=$types' -o -name *.'$$num
done
echo "TYPES="$types
find . -name '*.'$1 | xargs du -ch *.$1 | grep total
Sorun şu ki burada:Bash betikindeki değişken argüman numarasını nasıl kullanırım?
#loop through additional filetypes and append
num=1
while [ $num -lt $# ]
do
((num++))
types=$types' -o -name *.'>>$$num<<
done
Sadece ilkini içermeyen tüm argümanlar üzerinde yineleme yapmak istiyorum, yeterince kolay olmalı, ama zor anlar geçiriyorum bu iş nasıl yapılır
bu işler, ama neden anlamıyorum! gerekli, $ {num} çalışmalı gibi görünüyor. Bu statüyü nasıl okudunuz? "num değil" gibi görünüyor ama bu mantıklı değil –
$ {num} $ num ile aynı. $ {! num} dolaylı bir değişkenin gösterimidir. Görünüşe göre, "$ {! Variable} notasyonu, eski 'eval var1 = \ $$ var2' büyük ölçüde üstündür" (http: // www.faqs.org/docs/abs/HTML/bash2.html) – amertune