2010-11-09 101 views
6

臨時我需要從一個bash殼,並且因此暫時改變運行CSH腳本經由命令改爲tcsh。它在交互模式下工作完美,但我不能在一行命令中弄清楚。 因此,在交互模式我做bash shell中:運行CSH腳本,改變殼經由命令

tcsh的

源my.tcshr

useMyTcshCmd

我怎樣才能做到這一切在1個命令? 很抱歉的新手問題...

回答

12
tcsh -c "echo foo; echo bar" 

結果:

foo 
bar 

所以這應該工作:

tcsh -c "source my.tcshr; useMyTcshCmd" 
+0

看起來不錯,我試試看明天的工作。感謝您的幫助 – user501743 2010-11-09 11:33:40

3

你應該在腳本中直接指定解釋:

#!/usr/bin/tcsh 
echo "doing stuff" 

,然後只需運行該腳本:

./script 
+0

一種不起作用的,因爲它是幾個csh的腳本進行交互。首先需要.tcshr設置。已經花了一段時間嘗試 – user501743 2010-11-09 11:10:02

+0

你應該在腳本中做到這一點。我沒有看到任何問題,我一直這樣做(雖然我使用bash,但原理是一樣的)。 – 2010-11-09 11:12:42

+0

@ user501743:換句話說,使用包含腳本文件的包裝腳本並運行其他每個腳本。 – 2010-11-09 16:03:47

0
tcsh -c useMyTcshCmd 
+0

我需要源my.tcshr第一,所以這將是命令的鏈真。 tcshr需要設置全球環境變量。 – user501743 2010-11-09 11:06:29

+0

tcsh在運行時讀取.tcshrc。不知道你爲什麼想將其命名爲my.tcshr。也許你可以在.tcshrc中包含這個文件 – Raghuram 2010-11-09 11:39:14

+0

它不在主目錄中,所以tcsh不會找到它 – user501743 2010-11-09 11:54:40