2

Существует довольно удивительный яблочный скрипт под названием "Открыть терминал здесь" ( http://www.entropy.ch/software/applescript/ ), который вы можете добавить на панель инструментов вашего искателя и щелкнуть, когда вы хотите запустить консоль терминала, которая настроена на этот каталог.

Иногда мне нужно быть пользователем root, и в итоге я запускаю терминал, делая что-то вроде sudo -i а затем мне приходится возвращаться в предыдущий каталог, потому что команда sudo помещает меня в /var /root.

Я использую sudo -i, потому что мне нравится загружать такие вещи, как псевдонимы / профиль bash.

Сценарий яблочный, и вот важная часть его работы:

    ...
    set cmd to "cd " & quoted form of the_path & " && echo $'\\ec'"
    ...
    tell application "Terminal"
        activate
        do script with command cmd

Как мне получить это для загрузки от имени пользователя root?

2 ответа2

1

На самом деле это было довольно сложно понять, но я добавил это в свой файл /etc/profile :

directory=`pbpaste`
if [ -d "$directory" ]; then
    cd "$directory"
fi

После этого я использовал скрипт "Открыть терминал здесь" и просто изменил его так, чтобы он копировал текущий путь в буфер обмена перед запуском терминала.

    tell application "Finder" to set the clipboard to the_path

и затем я добавил часть sudo -i в код, где он активирует терминал:

    set cmd to "cd " & quoted form of the_path & " && echo $'\\ec' && sudo -i"

    tell application "Terminal"

Таким образом, путь будет скопирован в буфер обмена, я могу использовать значок для запуска appleScript, а затем, когда профиль загружен (для root), он изменится на каталог.

0

В какой каталог вы пытаетесь попасть? Псевдоним home ('~') не работает как root, поэтому вам может понадобиться использовать абсолютный путь.

Чтобы использовать AppleScript для запуска Terminal от имени пользователя root, вы можете сделать что-то вроде следующего (не проверено!):

tell application "Terminal"
    activate
    tell application "System Events" to keystroke "sudo -i" & return
    do script with command cmd

Это предоставит вам права администратора перед запуском кода, который изменится на открытый каталог Finder. Это может быть довольно рискованно, если вы не будете осторожны со сценариями, которые запускаете.

В более общем смысле вы можете заставить AppleScript выполнять команды sudo с кодом, подобным следующему:

set shellOutput to do shell script cmd with administrator privileges
display dialog shellOutput

где 'cmd' - команда для запуска. (Это также отображает всплывающее окно результатов кода.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .