2012-12-17 8 views
11

Zobaczyłem w temacie this, że można dodać funkcję w skrypcie logowania do powłoki zamiast aliasu, jeśli chcesz użyć parametrów. Ja jednak umieszczony następujący kod w moim pliku .cshrc w sekcji z aliasses:Funkcja zamiast aliasu w skrypcie logowania powłoki C

function gf() 
{ 
    grep -n $1 `find .` | grep -v "can't open" 
} 

Ale kiedy typ źródła .cshrc, pojawia się komunikat o błędzie: Źle umieszczone() 's. Czy składnia jest inna w powłoce C niż w powłoce Basha? Jeśli tak, jaka jest prawidłowa składnia?

Odpowiedz

15

Niestety, nie można definiować funkcji w csh, tak jak w większości innych powłok. Ta funkcja nie istnieje w csh.

Jedyną opcją jest utworzenie skryptu i umieszczenie go w katalogu na swoim komputerze PATH, np. ~/bin.

+0

Dzięki za odpowiedź. Niestety to nie pomaga, nadal mam taki sam błąd w tym przypadku. – physicalattraction

+0

Zaktualizowałem moją odpowiedź. Funkcje nie są obsługiwane w 'csh'. – dogbane

+0

Bummer. Ale dobrze wiedzieć. Dzięki. – physicalattraction

0

Oto moje rozwiązanie:

#!/bin/csh 

if ("$1" == "run") goto $2 

echo "Now in default mode" 

echo "Calling myself" 

csh -f dummy run sub1 

csh -f dummy run sub2 

exit 


sub1: 

echo "In sub1" 

exit 

sub2: 

echo "In sub2" 

exit 
Powiązane problemy