Jak mogę uruchomić skrypt powłoki na wielu różnych komputerach z tym samym kodem? Jeśli mam to uruchomić
/ users / „my name” / desktop / etc.
to nie będzie działać, gdy użyję go na innym komputerze, ponieważ nazwa użytkownika będzie inna. Czy jest jakiś sposób, aby uruchomić go bezpośrednio bez przeglądania katalogu użytkownika?
applescript
command-line
Conrad Homan
źródło
źródło
~/Desktop/blahblahblah
.~
Jest skrótem dla „katalogu domowym użytkownika bieżącego”.$USER
, która zawiera nazwę folderu domowego. Więc napisałbyś:"/Users/$USER/My Folder"
na przykład.$HOME
zamiast,~
ponieważ (~
) może być problematyczne, i zaleca się stosowanie$HOME
go w przypadku używaniado shell script
w AppleScript.Odpowiedzi:
Wydaje mi się, że szukasz polecenia AppleScript:
lub
Ale to zwróciłoby ścieżkę HFS, a opublikowany kod jest ścieżką POSIX, dzięki czemu można ją zmienić na:
Jak stwierdzono w komentarzu, istnieje
$USER
dla terminala i na pamięć można nadal wywoływać go w AppleScript za pomocą czegoś takiego:Jeśli
path to desktop folder
nie działa, możesz po prostu spróbowaćpath to desktop
.Edytować
Adresowanie komentarza. Nauczono mnie ścieżki HFS i aliasu były takie same, sprawi, że będzie to kolejne pytanie dla jasności.
Budowanie ścieżki
as text
jest nawykiem, gdy konkatuje ciągi znaków lub gdybym zamierzał pójść ścieżką i nazwać to później wdo shell
. Na przykład:w Script Debugger zwraca ścieżkę HFS. Po połączeniu katalogu w sposób pokazany w pytaniu PO pojawia się błąd kompilacji z:
i a
kiedy wywoływałem ścieżki za pomocą
path to
, musiałem je zapisać jako:Byłam obca
short user name of (system info)
ipath to home folder
ale to dobrze wiedzieć. Jednym z problemów tego pytania jest to, że OP oznacza go terminalem i AppleScript, więc rozwiązanie jest nieco skomplikowane.źródło
alias
ścieżki; zwraca ścieżkę HFS. Druga linia kodu nie wymaga wymuszaniatext
:POSIX path
zwracatext
obiekt. Trzecia linia kodu to niepotrzebne wywołanie skryptu powłoki, ponieważ te same informacje można pobrać za pośrednictwem,short user name of (system info)
a także za pośrednictwemsystem attribute "USER"
. Podobnie można uzyskać ścieżkę do folderu domowegosystem attribute "HOME"
(i oczywiście zwykłąpath to home folder
trasę).path to desktop folder
w skrypcie debugger zwraca ścieżkę HFS”, co nie jest poprawne. Pomijając na razie dylemat „ścieżka HFS” a | „ścieżka aliasu”, wiemy, żepath to desktop folder
zawsze zwróci ciągalias
, przez który mam na myśli zarówno specyfikator obiektów AppleScript, jak i klasę o nazwie „alias”. Ciąg dalszy ...Wykryje to, jaka jest nazwa użytkownika, za pomocą którego / skryptu się zalogowałeś i przejdzie do tego katalogu. możesz wstępnie wstawić go do skryptu:
źródło
$USER
istnieje już w wielu powłokach. Proszę zobaczyć mój komentarz do pytania PO. Ponadto nie byłoby potrzeby umieszczania$USER
poza podwójnymi cudzysłowami.cd "/Users/$USER"
jest w porządku.user
jak już wspomniano,$USER
powinna już istnieć. Nie, żebym użył twojej odpowiedzi, ale gdybym to zrobił, napisałbym jącd "/Users/$(whoami)"
zamiast tego.