2013-09-27 167 views
0

我有一個小腳本執行以下操作。這個例子我已經簡化了它。csh腳本變量替換

set logfile=$HOME/LOG/output.log 
find execute.sh -type f -exec csh -c '"$1" >& "$logfile" &' {} \; 

的問題是,find命令不擴大$logfile值。相反,它給我一個錯誤

logfile: Undefined variable. 

我不是那麼熟悉csh的,我也沒有做腳本相當長一段時間,但有可能逃離這個或以其他方式獲得對在命令中值的訪問?

+0

請勿使用'csh';閱讀[認爲有害的Csh編程](http://www-uxsup.csx.cam.ac.uk/misc/csh.html)。試試'zsh','fish'或'bash' –

+0

謝謝。我已經讀過它,並在過去做過我的事情,但沒有在這件事上做出選擇。 – McArthey

回答

1

logfile不是一個環境變量,所以它不存在於由-exec主文件啓動的shell中。您可以使用setenv

setenv logfile "$HOME/LOG/output.log" 

或更改報價,這樣$logfile是將命令傳遞給csh之前擴大。不過,我不清楚$1應該如何設置。