関数内にエコーを追加する方法

関数内にエコーを追加する方法

私はターミナルに初めて接しました。現在、.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

関数に2つのコマンドライン引数、つまりメッセージとメッセージを送信する人の名前を指定したいようです。

reply myFriend002 'Hello, wanna play tag?'

関数がこのように呼び出されると、文字列は関数myFriend002で使用でき、文字列はで使用できます。変数で、最初の2つと呼ばれます。$1Hello, wanna play tag?$2$1$2位置パラメータ

その後、関数内でこれら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"
}

関連情報