for file in /path/to/file1.txt /path/to/file2.txt /path/to/file3.txt 

do 

 # do something on $file 

 cat "$file" 

done 



You can directly process all command line args: 



for file in $* 

do 

 # do something on $file 

 [ -f "$file" ][ "$d" != "" ][ "$f" == "start" ][ "$f" == "end" ] && echo "==============================================================" 


} 

source /usr/local/nixcraft/mgmt/ssh/.keychain/$HOSTNAME-sh 

for d in $domains 

do 

 logdata "start" "$d @ $(date)" 

 [ -d "/home/wwwdata/$d/" ] && { cd "/home/wwwdata/$d/"; 

 /usr/bin/rsync --exclude='cache/cache-*'\ 

 --exclude '.bash_history' \ 

 --exclude '.viminfo' \ 

 --exclude 'cache/*_mutex.lock' \ 

 --exclude 'broken-link-checker*' \ 

 --exclude 'tmp/*' 

 -a --delete . backup@nasbox.nixcraft.net.in:/raid6/$HOSTNAME/ ; 

 } 

 logdata "end" "$d @ $(date)" 

done &> $log 

[ -f $latest ] && /bin/rm -f $latest 

ln -s $log $latest 

mail -s "Backup $HOSTNAME" admin@clients.nixcraft.net.in < $latest

#!/bin/bash
export PATH
echo "$PATH"
rename .txt .xml *
for file in *.xml
do
 dos2unix "$file"
done