From 94f65ed2680b9a64041c8220bd16c3bb04c9df51 Mon Sep 17 00:00:00 2001 From: Jaewook Lee Date: Mon, 23 Sep 2024 07:55:44 +0000 Subject: [PATCH] bashrc: new repeat and parallel --- linux-bash/bash_aliases.sh | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/linux-bash/bash_aliases.sh b/linux-bash/bash_aliases.sh index bf3fc19..b38e675 100644 --- a/linux-bash/bash_aliases.sh +++ b/linux-bash/bash_aliases.sh @@ -123,6 +123,45 @@ add() { fi diff } +parallel() { + if [ $# -lt 2 ]; then + echo "Usage: parallel " + return 1 + fi + + count=$1 + shift + command="$@" + + for i in $(seq 1 $count); do + eval "$command" & + done + + wait +} + +repeat() { + if [ $# -lt 2 ]; then + echo "Usage: repeat [s|m|h] " + return 1 + fi + + interval=$(echo $1 | sed 's/[smh]$//') + unit=${1##*[0-9]} + command="${@:2}" + + case $unit in + s|'') seconds=$interval;; + m) seconds=$((interval * 60));; + h) seconds=$((interval * 3600));; + *) echo "Invalid time unit. Use 's' for seconds, 'm' for minutes, 'h' for hours, or no unit for seconds."; return 1;; + esac + + while true; do + eval $command + sleep $seconds + done +} alias remote="git remote -v" alias stash="git stash" alias branch="git branch"