2014-07-18 64 views
1

我有一個腳本運行在Bash和其他運行在tcsh中的腳本。如何在Linux上製作混合bash/tcsh腳本?

我需要從同一個腳本運行它們。我如何創建一個 可以同時運行bash和tcsh命令的腳本?

+1

'csh'是'bash'很大的不同。你可以考慮使用'sh'派生的shell而不是'tcsh'。很難與'* csh'和'* sh'保持兼容性。 – konsolebox

+2

'我的一個程序只運行在Bash中,另一個只運行在tcsh'「請解釋...」 – John3136

+1

'bash prog1&csh prog2&'? – chepner

回答

1

大部分炮彈有一個參數,它允許你通過他們的字符串作爲一個命令來運行,例如,對於bash,那麼你可以運行

bash -c "echo this is a bash script; echo lalalala" 

運行該字符串在bash腳本,使用此運行其他嵌入式所需的shell。這將允許您在一個shell中創建一個腳本,當另一個程序需要運行時它將調用另一個shell。

如果在另一方面,他們都是正確shebanged與#!tcsh#!bash開始,你可以簡單地使用從同一個bash腳本這兩個腳本:

/path/to/script1 & 
/path/to/script2 & 
+0

我對linux很新,所以你能幫我解決嗎? 在這樣的畫面: https://fbcdn-sphotos-ha.akamaihd.net/hphotos-ak-xpa1/v/t34.0-12/10566383_889632401051040_860617194_n.jpg?oh=d936481ece1d76a38277cd4f87170e75&oe=53CB6ABB&__gda__=1405848036_b2e8cf6a9527130ff867cc9c55a3b101 在頁面頂部,您會看到bash shell。如果我運行我輸入的任何內容(沒有&),所有內容都將完美運行。請注意左側的目錄。現在,我還想在底部目錄(mesh_bandwidth ... one)中運行「run.sh」程序。你能告訴我我該跑什麼嗎?謝謝 – user3853033

+0

啊,這聽起來像你正在尋找的是按絕對路徑運行腳本,如果你寫你的命令爲:'parsecmgmt -a run -p blackscholes&;/home/linaro/- removedLongPath -/run.sh'它應該做你想做的事,注意我沒有寫出完整的路徑(需要太長的時間才能將路徑複製出照片),但是你需要,基本上可以通過輸入完整路徑來運行任何腳本,以便從任何位置運行它,而不必位於同一文件夾中。那是你需要的嗎?如果這是你想要的,我可以把它編輯成答案。 – Vality

+0

我得到這個錯誤: https://fbcdn-sphotos-ha.akamaihd.net/hphotos-ak-xpf1/v/t34.0-12/10559133_889648687716078_825646100_n.jpg?oh=03f53f99a6bea5a49fe61ca6320803f7&oe=53CB9CF2&__gda__=1405836015_283c4869747849ccd67d87152e2461ce 任何我做錯了什麼想法? – user3853033