Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Uruchamianie skryptów .sh jednym kliknięciem


  • Zaloguj się, aby dodać odpowiedź
15 odpowiedzi w tym temacie

#1 delta9

delta9
  • 56 postów

Napisano 17 lipca 2007 - 19:16

Mam skrypt ktory domyslnie jest otwierany programem tekstowym - chcialbym aby po kliknieciu zostal uruchiomiony w terminalu i wykonal swoja prace - jak to zrobic? (plik .sh)

#2 Wicko

Wicko
  • 1 405 postów
  • SkądBiałystok

Napisano 17 lipca 2007 - 19:56

1] Prawy klik na plik. 2] Wcisnij i przytrzymaj Option (Alt) 3] Always Open with / Zawsze uruchom przez... 4] wybierz odpowiedni program ;)

#3 ClassicGOD

ClassicGOD
  • 1 643 postów
  • SkądTychy

Napisano 17 lipca 2007 - 19:58

Nadaj mu prawa do wykonywania :P

#4 delta9

delta9
  • 56 postów

Napisano 17 lipca 2007 - 20:15

1] Prawy klik na plik.
2] Wcisnij i przytrzymaj Option (Alt)
3] Always Open with / Zawsze uruchom przez...
4] wybierz odpowiedni program ;)


Program Terminal mam szary, nie moge go wybrac

---- Dodano 17-07-2007 o godzinie 21:16 ----

Nadaj mu prawa do wykonywania :P


nadalem, i nadal otwiera mi ten plik w edytorze tekstowym

#5 voitek

voitek
  • 925 postów

Napisano 18 lipca 2007 - 01:39

Ja zrobiłem tak, że uruchamiam skrypty przez Quicksilver (http://quicksilver.blacktree.com). Gdy zacznie się wpisywanie polecenia od kropki, wówczas otwiera się okienko tekstowe, tam należy wpisać nazwę skryptu, następnie nacisnąć klawisz Tab i wybrać (pisząc na przykład słowo 'text') polecenie Run a Text Command in Terminal. Można oczywiście podpiąć pod to wszystko konkretny skrót klawiaturowy, ale jak ma się kilka skryptów, których nazwy się pamięta, to jest to całkiem wygodne rozwiązanie.

#6 delta9

delta9
  • 56 postów

Napisano 18 lipca 2007 - 07:57

Ja zrobiłem tak, że uruchamiam skrypty przez Quicksilver (http://quicksilver.blacktree.com). Gdy zacznie się wpisywanie polecenia od kropki, wówczas otwiera się okienko tekstowe, tam należy wpisać nazwę skryptu, następnie nacisnąć klawisz Tab i wybrać (pisząc na przykład słowo 'text') polecenie Run a Text Command in Terminal. Można oczywiście podpiąć pod to wszystko konkretny skrót klawiaturowy, ale jak ma się kilka skryptów, których nazwy się pamięta, to jest to całkiem wygodne rozwiązanie.


okej - ale nadal musze wpisywac nazwe skryptu
a ja chce po prostu w niego kliknac jak w zwykly skrot lub program i chce zeby sie uruchomil terminal i odpalil ten skrypt
wiem ze mozna zrobic cos takiego

#7 grzegor

grzegor
  • 1 125 postów
  • SkądKRK

Napisano 18 lipca 2007 - 08:35

applescript application: do shell script "/sciezka/nazwa parametry"
  • delta9 lubi to

#8 delta9

delta9
  • 56 postów

Napisano 18 lipca 2007 - 09:39

applescript application:
do shell script "/sciezka/nazwa parametry"


zrobilem tak jak piszesz:

do shell script "~/script.sh"

ale nie wiem czemu dostaje errory:

mkdir: /tmp/xxx: File exists
rm: *: No such file or directory
/Users/me/script.sh: line 5: wget: command not found
unzip:  cannot find or open file.zip, file.zip.zip or file.zip.ZIP.
cat: *.dat: No such file or directory

rozumiem te bledy ale dlaczego sie pojawiaja? cos nie tak ze sciezkami?

jak wlasnorecznie uruchamiam spod konsoli plik wszystko smiga
dodam ze pierwszy raz pracuje z applescript

#9 grzegor

grzegor
  • 1 125 postów
  • SkądKRK

Napisano 18 lipca 2007 - 09:40

Program Terminal mam szary, nie moge go wybrac


aha - to przeciez wystarczy zmienic Recommended applicartions na All :)

---- Dodano 18-07-2007 o godzinie 10:44 ----

rozumiem te bledy ale dlaczego sie pojawiaja? cos nie tak ze sciezkami?

jak wlasnorecznie uruchamiam spod konsoli plik wszystko smiga
dodam ze pierwszy raz pracuje z applescript


aa - no tak zapomnialem - musisz uzywac sciezek bezwzglednych - a najlepiej to zdefinuj na poczatku skryptu takie cos dla kazdego polecenia:

alias wget=`which wget`
(uwaga na odwrotne cudzyslowy)

nie testowalem ale powinno zadzialac

#10 Chilon

Chilon
  • 1 930 postów

Napisano 18 lipca 2007 - 09:45

zrobilem tak jak piszesz:

do shell script "~/script.sh"

ale nie wiem czemu dostaje errory:

mkdir: /tmp/xxx: File exists
rm: *: No such file or directory
/Users/me/script.sh: line 5: wget: command not found
unzip:  cannot find or open file.zip, file.zip.zip or file.zip.ZIP.
cat: *.dat: No such file or directory

rozumiem te bledy ale dlaczego sie pojawiaja? cos nie tak ze sciezkami?

jak wlasnorecznie uruchamiam spod konsoli plik wszystko smiga
dodam ze pierwszy raz pracuje z applescript


/tmp/xxx: File exists - tego raczej się nie pozbędziesz jeśli nie wrzucisz sprawdzania czy istnieje.

rm: *: No such file or directory
/Users/me/script.sh: line 5: wget: command not found
unzip:  cannot find or open file.zip, file.zip.zip or file.zip.ZIP.
cat: *.dat: No such file or directory

Musisz w tym skrypcie wpisywać pełne ścieżki to pewnie przyczyna większości błędów.
  • delta9 lubi to

#11 grzegor

grzegor
  • 1 125 postów
  • SkądKRK

Napisano 18 lipca 2007 - 09:53

a tak w ogole to tak teraz wymyslilem ze powinno wysterczyc na poczatku pliku:
export PATH=$PATH:/opt/local/bin:/opt/local/sbin
(to dla macports, dla finka bedzie prefiks /sw a dla recznie kompilowanych jesli nie zmieniles prefiksu /usr/local)

daj znac czy zadziala bo nie mam czasu teraz testowac a chetnie bym sie dowiedzial

---- Dodano 18-07-2007 o godzinie 10:56 ----

/tmp/xxx: File exists - tego raczej się nie pozbędziesz jeśli nie wrzucisz sprawdzania czy istnieje.

dlatego zawsze przed mkdir i generalnie operacji na katalogach proponuje dawac:
if [ -d $KATALOG ]; then echo Katalog już istnieje; else mkdir -p $KATALOG; fi
gdzie $KATALOG to katalog ze sciezką

#12 delta9

delta9
  • 56 postów

Napisano 18 lipca 2007 - 09:59

a tak w ogole to tak teraz wymyslilem ze powinno wysterczyc na poczatku pliku:
export PATH=$PATH:/opt/local/bin:/opt/local/sbin
(to dla macports, dla finka bedzie prefiks /sw a dla recznie kompilowanych jesli nie zmieniles prefiksu /usr/local)

daj znac czy zadziala bo nie mam czasu teraz testowac a chetnie bym sie dowiedzial


niestety nie... wget not found

---- Dodano 18-07-2007 o godzinie 11:00 ----
ok - dziala tak jak napisaliscie, dodalem sciezki
ale nadal nie jestem usatysfakcjonowany
chcialbym zeby klikniecie w plik uruchomilo konsole, tak abym widzial postep pobierania pliku z serwera poprzez wget - w przypadku uzycia applescipt nie widze tego postepu, dopiero na koniec dzialania widze wynik

#13 grzegor

grzegor
  • 1 125 postów
  • SkądKRK

Napisano 18 lipca 2007 - 10:08

chcialbym zeby klikniecie w plik uruchomilo konsole, tak abym widzial postep pobierania pliku z serwera poprzez wget - w przypadku uzycia applescipt nie widze tego postepu, dopiero na koniec dzialania widze wynik


tell application "Terminal"
do script SKRYPT
end tell

#14 delta9

delta9
  • 56 postów

Napisano 18 lipca 2007 - 10:36

tell application "Terminal"
do script SKRYPT
end tell

i tego wlasnie szukałem :) reputacja++

btw, polecisz jakies dobre info o budowaniu takich skryptow? (www, pdf, cokolwiek)

#15 grzegor

grzegor
  • 1 125 postów
  • SkądKRK

Napisano 18 lipca 2007 - 11:54

btw, polecisz jakies dobre info o budowaniu takich skryptow? (www, pdf, cokolwiek)


Jak coś już muszę w AS to korzystam z zasobów apple i google.
Chodzi o to, że każda aplikacja tak naprawdę ma własne polecenia i nigdy nie będziesz mieć wszystkiego w jednym miejscu (bo skąd apple ma wiedzieć, że mój program ma metody "wyrzuć śmieci" i "zmyj naczynia")

#16 delta9

delta9
  • 56 postów

Napisano 18 lipca 2007 - 12:13

pewnie, masz racje. thnx




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych