
私は、iOS/Android プロジェクトの構築など、1 日に何百回も実行する大量のタスクを自動化するスクリプトを作成していますが、シェル スクリプトの経験はあまりありません。
プロジェクトの 1 つでは Titanium を使用しており、ネイティブ ビルド コマンドの CLI ラッパーが提供されているので、次のようにします。
titanium build -p ios -T device
デバイスに展開したいのですが、展開する前にいくつか選択する必要があるので、次のようになります。
Which developer certificate would you like to use?
/Users/bernardo/Library/Keychains/login.keychain
1) CERTIFICATE 1 (xxx) (expires Oct 16, 2015 4:27:51 pm)
2) CERTIFICATE 2 (xxx) (expires Oct 1, 2015 12:06:30 pm)
Select a certificate by number or name:
1
私は常に同じオプションを選択しているので、質問は次のとおりです。毎回オプションを自動的に選択するスクリプトを作成するにはどうすればよいでしょうか?
ありがとう!
編集:
expect
そこで、オプションを選択するために 使用してみました。グーグルで調べた結果、次のようにしています。
expect <<EOD heredoc> spawn titanium build -p ios -T device heredoc> expect "Select a certificate by number or name" heredoc> send "1\r" heredoc> EOD
しかし、入力として「1」が送信される代わりに、「%」が表示されます。なぜか知っている人はいますか?