함수 안에 에코를 추가하는 방법

함수 안에 에코를 추가하는 방법

저는 터미널을 처음 접했습니다. 현재 .bash_profile에 메시징 앱을 열지 않고도 터미널에서 특정 연락처로 메시지를 보낼 수 있는 작은 함수를 만들려고 합니다. 내 목표는 ""메시지 삽입" 회신" 명령을 사용하여 기능 내에 있는 특정 연락처에 메시지를 보낼 수 있도록 하는 것입니다. 나는 텍스트를 삽입할 수 있다는 것을 알고부터 에코를 만지작거리려고 노력했지만 운이 없었습니다. 메시지만 삽입할 수 있도록 함수에서 어디에 넣어야 할지 모르겠습니다.

function reply() {
        osascript -e 'tell application "Messages" to send "insert message" to buddy "insert contact"'
        }

간단히 말해서. 나도 알아

osascript -e 'tell application "Messages" to send "insert message" to buddy "insert contact"'

터미널에서 시도한 이후 명령이 작동합니다. 하지만 "메시지 삽입"과 "연락처 삽입"으로 커서를 수동으로 이동해야 하기 때문에 프로세스 속도를 높이기 위해 함수나 별칭으로 만들려고 합니다.

어떤 질문에도 최선을 다해 답변해 드리겠습니다. 미리 감사드립니다.

답변1

함수에 두 개의 명령줄 인수, 즉 메시지와 메시지를 보낼 사람의 이름을 제공하려는 것 같습니다.

reply myFriend002 'Hello, wanna play tag?'

함수가 이런 방식으로 호출되면 문자열은 myFriend002함수에서 사용할 수 있고 문자열은 에서 사용할 수 있습니다. 변수이며 처음 두 개라고 불립니다.$1Hello, wanna play tag?$2$1$2위치 매개변수.

그런 다음 함수에서 이 두 변수를 다음과 같이 사용할 수 있습니다.

reply () {
    osascript -e 'tell application "Messages" to send "'"$2"'" to buddy "'"$1"'"'
}

$1and 주위의 이상한 따옴표는 $2작은 따옴표로 묶인 문자열을 나누고 각 변수의 확장을 큰 따옴표로 묶은 다음 작은 따옴표로 묶인 문자열을 계속하는 것입니다.

당신은 또한 사용할 수 있습니다

reply () {
    osascript -e "tell application \"Messages\" to send \"$2\" to buddy \"$1\""
}

...읽기가 더 쉬울 수도 있습니다.

-e또는 더 멋지게 만들고 싶다면 먼저 개별 옵션에 대한 값을 만드세요 osascript.

reply () {
    local script

    printf -v script \
        'tell application "Messages" to send "%s" to buddy "%s"' "$2" "$1"

    osascript -e "$script"
}

관련 정보