From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 32314 invoked from network); 16 May 2020 12:21:37 -0000 Received: from ns1.primenet.com.au (HELO primenet.com.au) (203.24.36.2) by inbox.vuxu.org with ESMTPUTF8; 16 May 2020 12:21:37 -0000 Received: (qmail 4983 invoked by alias); 16 May 2020 12:21:28 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 45832 Received: (qmail 7495 invoked by uid 1010); 16 May 2020 12:21:28 -0000 X-Qmail-Scanner-Diagnostics: from mail-lf1-f43.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.3/25812. spamassassin: 3.4.4. Clear:RC:0(209.85.167.43):SA:0(-2.0/5.0):. Processed in 1.260888 secs); 16 May 2020 12:21:28 -0000 X-Envelope-From: hboetes@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.167.43 as permitted sender) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=u8zU5hUyyIh3YKm7bFHf6JXgtkNEWIztSzosTQjV7V4=; b=rmAh8sb31/f5FfDQFUBk9eIycl49EIROebm1NJ2mZGrXEgWKw4tnYKZWUBp3Q3UFT5 WJE660esTXJ0TCwvpHOcr6v2tg/C+zpq3pqOq4TS1JZF7a6o0G0Ow9waWHGIkb8X3Uv7 8VrWqLbFJ0KWz3vq2n7VHD+fjqdvJzATJgPb/FYML8w/zlIXYrxiwHMadBSkr6S3eZ2m 8/iuGnYXqXgOv4ZO2GvDEJuK4XscEYaxeFRgwWztYIz8aiBoebXp2EXnEsK5KDNJHBr7 Jctt4wcyooFUUhMml+URHpWvfN5nFIlYDeZtrUuagbKdv/YFOWgHu4EjSI8LPkhvwhy4 65Qw== X-Gm-Message-State: AOAM533Ie9c9ndsAfTkmyYMkuv4/KrOXrzMmf6FXlSRmPwXJJLuDEPGz j1PTYKC4mmcKYgEYocwfK+eCZwy8cBCqt/cCDpr5RZ3Hjls= X-Google-Smtp-Source: ABdhPJyHXB6Qsw6Ml3WGWsTI5S+eH6JHB8FnKwZ7KXHJpQtXo8wwhXsPUufiD/IlbzVEt7xnL/7Ze0H/UIEtfxAWJxY= X-Received: by 2002:ac2:5de5:: with SMTP id z5mr5468489lfq.68.1589631651724; Sat, 16 May 2020 05:20:51 -0700 (PDT) MIME-Version: 1.0 From: Han Boetes Date: Sat, 16 May 2020 14:20:40 +0200 Message-ID: Subject: zsh watch function To: zsh-workers@zsh.org Content-Type: multipart/alternative; boundary="000000000000ecca5205a5c2f53d" --000000000000ecca5205a5c2f53d Content-Type: text/plain; charset="UTF-8" In this online question someone asked if a watch internal command was available, like with bash: https://unix.stackexchange.com/questions/260323/watch-equivalent-in-zsh I couldn't help myself but to write the code for that. Fun fact is that code-colouring and aliases work. This code is probably not fool proof. Feel free to improve. Please consider adding it in improved form to the ZSH distribution. watch () { IN=2 case $1 in -n) IN=$2 shift 2 ;; esac clear HN="$(hostname)" HD="$(printf 'Every %.1f: ' $IN)" CM="$*" # Where does that -2 come from? ((PAD = COLUMNS - ${#HD} - ${#CM} - ${#DT} - 2)) while : do DT=$(date) printf "$HD%s%${PAD}s: %s\n\n" "$CM" "$HN" "$DT" # echo "$LFT $RHT" eval "$CM" sleep $IN clear done } --000000000000ecca5205a5c2f53d--