Shell - Bludwarf/CodeBank GitHub Wiki

Suivi d'un fichier de log avec grep

tail -f error_log_frparvm37955927_traducteur.log | grep --line-buffered 't_adresse'

Variables

MOUNT="/bin/mount"
basedir=`dirname $0`
JAR_NAME=$(basename -- "$JAR_PATH")
user=$(whoami)
RETOUR=$?
VAR=${!VARNAME} # Déclaration de variable avec un nom dynamique
ESCAPED_MULTILINE="${MULTILINE//$'\n'/\\n}" # Échappement des sauts de ligne contenu dans une variable (uniquement le premier si / au lieu de //)
"${*: -1}" # Dernier argument
${*%${!#}} # Tous les arguments sauf le dernier

Source Source

Vérification de variables :

if [ -z "$VAR" ]; then echo "Chaîne vide"; exit 1; fi

Aperçu de fichier

Première ligne d'un fichier.

head -n 1 file.txt

Dernière ligne d'un fichier

tail -n 1 file.txt

Installation de package

Installer le package gettext, si on ne trouve pas la commande envsubst :

which envsubst || (apt-get update -y && apt-get install gettext -y)

Pour Alpine :

which envsubst || (apk update && apk add gettext)

Chemin

Boucler sur un chemin avec wildcards :

# Exemple : "dossier/*/fichier.txt"
local files
files=$*
if [ -z "$files" ]; then usage; fi

for file in $files; do
  echo "$file"
done

Si le chemin contient ** :

shopt -s globstar # Pour activer la recherche de fichier via **

Source

Lecture de fichier

Ligne par ligne :

while IFS="" read -r line || [ -n "$line" ]; do
    printf 'Ligne : %s\n' "$line"
  done <"$file"

Source.

Paramètres dans une fonction

  local OPTIND o save_jar_only
  save_jar_only=false
  while getopts ":j" o; do
    case "${o}" in
    j)
      save_jar_only=true
      ;;
    *)
      foo_usage
      ;;
    esac
  done
  shift $((OPTIND - 1))