명령 행을 사용하여 .terminal 파일을 가져 오려면 어떻게해야합니까?


3

Mac 환경 설정을 자동화하는 (Bash) 스크립트를 작성 중이며 명령 줄만 사용하는 것을 제외 하고는 작업을 수행하려고 합니다. 또한 그 테마를 기본값으로 만들고 싶습니다.

.terminal 파일을 내 보냈고 모두 준비가되었습니다. 프로그래밍 방식 으로이 작업을 수행하는 방법을 알 수 없습니다. 내가 놓친 어딘가에 대한 문서가 있습니까?

... 또는 AppleScript를 사용하면 더 쉬울까요? 그래도 전에는 해본 적이 없습니다.


왜 직접 설정하지 않고 쉘에서이 설정을 Terminal하시겠습니까?
dan

@danielAzuelos 프로세스를 자동화 할 수 있습니다.
Matt

1
이 쉘 스크립트를 어떻게 실행 하시겠습니까? 에서 Terminal?
dan

글쎄, 적어도 껍질에서. 터미널에서해야한다면이 자동화 스크립트가 기본 터미널 설정에서 실행해야하는 유일한 스크립트 일 것입니다.
Matt

→ Matt :이 구성을 두 번 이상 (예 : 둘 이상의 계정 또는 둘 이상의 컴퓨터에서) 수행해야합니까?
dan

답변:


1

다음 open명령을 사용하고 환경 설정을 변경하십시오.

open ~/MyTerminalSettings.terminal
defaults write com.apple.terminal "Default Window Settings" "MyTerminalSettings"

open명령은 새 터미널 창을 추가로 열지 만 스크립트는 원래 창에서 계속 실행되므로 편리한 경우 새 창을 닫을 수 있습니다.


그러면 방해가 될 수도있는 터미널 창이 열립니다. (아마도 어려울 수 있습니다.)-테마를 가져 오는 것 같지만 어떻게 기본 테마로 설정합니까?
Matt

0

이것은 대답이 아니지만 쉘 스크립트를 작성하는 데 사용해야하는 기본 브릭입니다.

  1. Terminalplist가 손상되지 않도록 실행되고 있지 않은지 확인하십시오 .

    ps ax면 | grep '[/] Terminal'> / dev / null 2> & 1; 그때
        에코 터미널 실행! > & 2 && 2 번 출구
    fi
    # 계속해
    

    받는 사람 조심 [/]에 방지하기 위해 여기에있는 grep당신의 grep 항상 성공적인 것입니다 명령.

  2. 다음을 사용하여 Terminalplist를 텍스트 파일로 변환하십시오 .

        
    plutil -xml1 변환 ~ / Library / Preferences / com.apple.Terminal.plist
    
  3. 당신의 스트립 .terminal, 헤더에서 파일을하자는 자사의 이름을 말한다 imported.terminal

    sed -n '/<dict>/,/<\/dict>/p' imported.terminal >tmp.terminal
  4. tmp.terminalplist를 ~/Library/Preferences/com.apple.Terminal.plist 오른쪽 사전 안에 삽입하십시오 .

    이를 위해서는 컨텍스트 분석이 필요합니다. 내가 선택한거야 perl내가해야 할 일을했을 경우, 그러나 awk, ex또는 sed몇 줄과 점검 방법으로 쉬울 수 있습니다.


2
당신이 스크립트 터미널 :-)에서 실행있는 동안 터미널 운전을하지 않는 종류의 까다로운 일이 될 수 있음
nohillside

Matt가 터미널에서 직접 수행하지 않기 때문에 쉘 에서이 작업을 수행하려고한다고 생각했습니다 (예 :을 통해 ssh). 그러나 이것은 명확히해야합니다.
dan

어느 쪽이든. 어느 쪽이 쉬운 지
Matt

1
Patrix가 지적했듯이 하나의 경로는 어려울 것입니다. Terminal작업을 수행하는 쉘이 동일한 Terminal프로그램 에서 포크 된 경우 plist를 쉽게 수정할 수 없습니다 . Terminal종료 되면 지금까지 수행 한 모든 수정 사항을 덮어 씁니다. 이것이 제가 제안한 1 단계의 이유였습니다.
dan

맞아 알았어
Matt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.