ShellScript
Zsh
Linux

対話的コマンドの自動実行

linuxでbluetoothを使う時に用いるbluetoothctlというコマンドがあります。このコマンドは対話的コマンドです。使うにはコントローラの電源を入れてデバイスと接続し閉じるということを一々入力しなければなりません。辛いです。なので、関数にしようと試みネットで調べexpectというコマンドを見つけました。しかし、私はarch linuxを使用しています。このためだけに新たなパッケージを入れるのはなんだか嫌です。普通にechoコマンドを;で区切りパイプで繋げばいけるのではないかと考え無名関数を使いスクリプトを書きました。
() { echo 'power on'; sleep 1; echo "connect AA:BB:CC:DD:EE:FF"; sleep 3; echo 'quit'; } | bluetoothctl
sleepを調整すれば他のコマンドでも使えると思います。