似たようなタイトルの記事を書いてすまなんだ
今北産業
- これ作った↓
- ウンコードだったから作り直した
-
rlwrap
くん偉いぞ
rlwrapってなんぞや
readline(ターミナルの標準入力的なやつ)をラップするやつ。
名前も r(ead)l(ine)wrap からきてると思う
readlineはアローキーを押したときの挙動がしょぼい。そういう悲しみを解消してくれるコマンド
rlwrapをつかわないとこうなる▼ (↑↓←→↑の順で押してます)
rlwrapを使ってみる
sqlplus
もその悲しみを背負ったコマンドらしいので、sqlplusに対してrlwrap
が使われてるらしい(知らなかった)。
要するに、
$ rlwrap sqlplus
ってするらしい。sqlplus
を使う人はだいたい.zshrc
あたりに
alias sqlplus="rlwrap sqlplus"
なんてしてるらしいよ
本題
前に書いた これ http://qiita.com/ahyahya/items/b11b5d2dc30193c9c864
流石に実装がひどいなあと思ったから作り直した。
概要
任意のコマンドを対話モード化するためのコマンドinteract
例えば、gitしか弄らない予定のターミナルタブを開いたとする。毎回「git」って打つのめんどいだけだし省略したい。これを使えば解決する
需要はほとんどないとおもう
インストール
mac
$ curl -sL https://raw.githubusercontent.com/ahyahya/interact/master/install.sh | bash
linux
rlwrapをyumかなにかでインストールして、install.shをみながらやれば入ると思います。多分。がんばって
使い方
察してくれ
なかみ
メインロジックはこれだけ▼
_interact
#!/bin/bash
cmd=$*
while true ; do
echo -ne "\033[34m[ $cmd ] >> \033[00m"
read args
line=$cmd" "$args
$line
done
前に比べるとだいぶコード短くなった。
これを呼びたいわけだけどrlwrap
しないとだねってことで↓を用意
interact
#!/bin/bash
rlwrap _interact "$*"
やったぜ。