読者です 読者をやめる 読者になる 読者になる

関数の中で pecoを複数回使う

peco

pecoでlaunchctl start/stopを呼びやすくする - NullPointer's Blog


使い手の自由なんですが, 別にコマンドを分けなくてもいいかなと思った.
あと pecoや percolって 1関数内で 1回しか使われていないケースが
多いけど, 何回使ってもよいと思います.

サンプルコード

function peco-service() {
    local SERVICE_NAME

    SERVICE_NAME=$(service --status-all 2>&1 \
                       | awk -F '  ' '{print $2}' | peco --prompt='Service>')
    ACTION=$(printf "start\nstop\nrestart\nreload"| peco --prompt='Action>')
    if [ -n "$SERVICE_NAME" -a -n "$ACTION" ]; then
        echo "${ACTION} ${SERVICE_NAME}"
        service $ACTION $SERVICE_NAME
    else
        return 1
    fi
}

イメージ