How to change the path of temp file,redo log file when restore an rman backup on another machine?
You can either use a pfile and set the following in the pfile, or you can use an spfile and do a startup nomount to set the following variables. You can have as many directories as you want the pattern will still be: '','','','','',''...

alter system set db_file_name_convert='/foo/','/bar/' scope=spfile;
alter system set log_file_name_convert='/foo/','/bar/' scope=spfile;


You can also specify the redo on the clone/restore command.

DUPLICATE DATABASE TO mytest BACKUP LOCATION '/mybackup/mytest' 
LOGFILE 
       GROUP 1 ('/mybackup/mytest/redo01a.log',  '/mybackup/mytest/redo01b.log') SIZE 256M REUSE,
       GROUP 2 ('/mybackup/mytest/redo02a.log',  '/mybackup/mytest/redo02b.log') SIZE 256M REUSE,
       GROUP 3 ('/mybackup/mytest/redo03a.log',  '/mybackup/mytest/redo03b.log') SIZE 256M REUSE  
NOFILENAMECHECK;