#!/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
Проблема у меня прямо здесь:Как использовать номер аргумента переменной в сценарии bash?
#loop through additional filetypes and append
num=1
while [ $num -lt $# ]
do
((num++))
types=$types' -o -name *.'>>$$num<<
done
Я просто хочу, чтобы перебрать все аргументы, не считая первого, должно быть достаточно легко, но у меня трудное время выяснить, как сделать эту работу
это работает, но я не понимаю, почему! требуется, кажется, что $ {num} должен работать. Как бы вы прочитали этот пост? выглядит как «не num», но это не имеет смысла. –
$ {num} - это то же самое, что и $ num. $ {! num} - обозначение косвенной переменной. Похоже, что \ $$ num будет работать, хотя, согласно тому, что я читал, «нотация $ {! Variable} значительно превосходит ноту« eval var1 = \ $$ var2 »(http: // www.faqs.org/docs/abs/HTML/bash2.html) – amertune