私は AppleScript を使用して、簡単なシェル スクリプトを起動しています。
tell application "Terminal"
activate
do script "$(" & quoted form of MyScriptPath & ")"
end tell
ターミナルウィンドウを適切に起動し、期待どおりに入力します。
~$ $('/my script path/myscript.sh')
ただし、最初にスクリプトを評価/呼び出すときに、STDOUT (echo 経由) に出力されたものはすべて $( ) 内にあるかのように評価されるようです。
#!/bin/sh
echo "foobar"
生成:
-bash: foobar: command not found
私は広く検索しましたが、スクリプトの場所をターミナルに送信する前に、AppleScript で (「引用形式」を使用するのではなく) パス内のスペースをエスケープする適切な方法を実際には見つけられませんでしたが、それをはるかに好みます。ターミナルで起動するスクリプトはインタラクティブであり、集中する必要があるため、「do shell script」ではなく「do script」を使用しています。
$( ) を介してスクリプトを呼び出すときに、STDOUT にエコーするにはどうすればよいですか?