2010-11-09 10 views
6

Muszę uruchamiać skrypty csh z powłoki bash, a tym samym tymczasową zmianę na tcsh za pomocą komendy. Działa perfekcyjnie w trybie interaktywnym, ale nie mogę znaleźć polecenia w jednym wierszu. Więc w trybie interaktywnym zrobić w powłoce bash:uruchamiaj skrypty csh z basha, zmieniaj tymczasową powłokę za pomocą komendy

tcsh

źródło my.tcshr

useMyTcshCmd

itp

Jak mogę zrobić to wszystko w 1 komendzie ? Przepraszam za pytanie początkującego ...

Odpowiedz

12
tcsh -c "echo foo; echo bar" 

Wynik:

foo 
bar 

Tak to powinno działać:

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

wygląda wspaniale, daję szansę jutro w pracy. Dzięki za pomoc – user501743

3

Należy określić interpretera bezpośrednio w skrypcie:

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

A potem po prostu uruchomić skrypt:

./script 
+0

rodzaj pracy nie robi, ponieważ jest kilka csh skrypty interakcji. Najpierw potrzebna jest konfiguracja .tcshr. Już spędziłeś chwilę próbując – user501743

+0

Powinieneś to zrobić w skrypcie. I nie widzę z tym żadnego problemu, robię to cały czas (chociaż używam basha, ale zasada jest taka sama). –

+0

@ user501743: Innymi słowy, użyj skryptu otoki, który zasila twój plik dot i uruchamia każdy z pozostałych skryptów. –

0
tcsh -c useMyTcshCmd 
+0

Najpierw muszę pobrać plik my.tcshr, więc będzie to naprawdę łańcuch poleceń. tcshr musi ustawić globalne zmienne środowiskowe. – user501743

+0

tcsh czyta .tcshrc po uruchomieniu. Nie wiesz, dlaczego chciałbyś nazwać go my.tcshr. Być może mógłbyś dołączyć ten plik do pliku .tcshrc – Raghuram

+0

, którego nie ma w katalogu domowym, więc tcsh go nie znajdzie – user501743

Powiązane problemy