#!/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
Il problema che sto avendo è proprio qui:Come si usa un numero di argomento variabile in uno script bash?
#loop through additional filetypes and append
num=1
while [ $num -lt $# ]
do
((num++))
types=$types' -o -name *.'>>$$num<<
done
Voglio semplicemente iterare su tutti gli argomenti non tra cui il primo, dovrebbe essere abbastanza facile, ma sto avendo un momento difficile capire come fare questo lavoro
questo funziona, ma non capisco perché il! è richiesto, sembra che $ {num} funzioni. Come leggeresti quella statuetta? sembra "non num", ma questo non ha senso –
$ {num} è uguale a $ num. $ {! num} è la notazione per una variabile indiretta. Sembra che anche \ $$ num funzioni, anche se, secondo quello che ho letto, "La notazione $ {! Variabile} è di gran lunga superiore alla precedente" eval var1 = \ $$ var2 "" (http: // www.faqs.org/docs/abs/HTML/bash2.html) – amertune