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

かまたま日記3

プログラミングメイン、たまに日常

BashのPS4でデバッグが捗る

Bashでset -xとするとデバッグモードとして処理内容が逐次出力されますが、PS4という環境変数で出力内容を調整できます。 test.sh #!/usr/bin/env bash PS4='+ [${BASH_SOURCE}:${LINENO}] ${FUNCNAME:+$FUNCNAME(): }' set -x hello() { name=$1 echo "Hell…

シェルスクリプトで再実行するための関数

retry() { command="$@" local try_count=0 local retry_limit=3 local wait_seconds=300 until sh -c "$command"; do [ $try_count -eq $retry_limit ] && return 1 sleep $wait_seconds try_count=$(expr $try_count \+ 1) done } # example retry ls -ltra…