2013-01-07 10 views
9

dzisiaj chciałem napisać funkcję, która będzie wdrażać moją stronę blogu (opracowany w nanoc) do stron GitHub automatycznie - oto skrypt:Rejestrowanie funkcji niestandardowych powłoki w systemie (OSX)

function cmit() 
{ 
    nanoc compile; 
    git add .; 
    git commit -am $1; 
    git push origin source; 
    cd output; git add .; 
    git commit -am $1; 
    git push origin master; 
    cd ..; 
    echo 'new version deployed! now starting nanoc locally..'; 
    nanoc aco; 
} 

Przykład użycia: cmit "my example commit!"

Naprawdę nie wiem, jak zarejestrować moją funkcję w systemie (OSX) - w .bashrc, .bash_profile, a może gdzieś indziej? Proszę pomóż!

Odpowiedz

8

Wystarczy dodania go do dołu pliku ~/.bashrc wtedy będzie w stanie wykorzystać cmit jak zwykły polecenia, trzeba będzie odświeżyć bieżącą powłokę odebrać zmiany więc uruchomić source ~/.bashrc. Jeśli masz funkcję zapisaną w pliku cmit po prostu wykonaj cat cmit >> ~/.bashrc, aby dołączyć funkcję do końca swojej ~/.bashrc.

Państwo mogli wypróbować funkcję testową:

# add to ~/.bashrc first 
function test() { 
    echo "Some test foo!" 
} 

$ source ~/.bashrc 

$ test 
Some test foo! 
+0

to nie działa, kiedy ponownie uruchomić konsolę - Jak zarejestrować się go raz na zawsze all (teraz za każdym razem uruchamiam komendę 'source' ..) :( – mrmnmly

+2

Wygląda na to, że OSX' ~/.bashprofile' jest używany zamiast '~ .bashrc', więc umieść funkcję w' ~/.bashprofile 'i to powinno rozwiązać ... –

+1

* cou gh * ehem * '~/.bash_profile' znajduje się podkreślenie. –

3

Można umieścić go w .bashrc, to będzie działać tak długo, jak nie jesteś zalogowany jako właściciel tego pliku .bashrc.

Jeśli ma to być dostępne dla każdego użytkownika, umieścić treść swojej funkcji w pliku skryptu, uczynić go wykonywalnym za pomocą chmod następnie przenieść go w /usr/bin (jestem zakładając, że masz uprawnienia administratora na tym systemie)

Uwaga: zwykle chcesz nadać mu rwx rx rx prawa, co odpowiada chmod 755 my_script

EDIT:

można tworzyć własne powiedzmy .my_bashrc i jakoś systemu powiedzieć do również zajrzeć do tego pliku?

Tak można tylko powiedzieć .bashrc pozyskać plik:

source ~/my_files/.my_bashrc 

lub

. ~/my_files/.my_bashrc 
+0

dzięki za odpowiedź! – Templar

+0

Nie ma za co. – cmc

Powiązane problemy