-
Notifications
You must be signed in to change notification settings - Fork 0
Shell
Mathieu Lavigne edited this page Oct 15, 2025
·
25 revisions
function usage() {
echo "ma_fonction <monParamètre1> <monParamètre2>" >&2
exit 1
}tail -f error_log_frparvm37955927_traducteur.log | grep --line-buffered 't_adresse'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
versionWithoutSnapshot="${version%%-SNAPSHOT}" # Suppression de suffixeVérification de variables :
if [ -z "$VAR" ]; then echo "Chaîne vide"; exit 1; fiAutres conditions :
[[ $VAR == *"Sous chaîne"* ]]Première ligne d'un fichier.
head -n 1 file.txtDernière ligne d'un fichier
tail -n 1 file.txtInstaller 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)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"
doneSi le chemin contient ** :
shopt -s globstar # Pour activer la recherche de fichier via **Ligne par ligne :
while IFS="" read -r line || [ -n "$line" ]; do
printf 'Ligne : %s\n' "$line"
done <"$file" 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))Exemple avec une fonction qui teste si une chaîne apparaît dans un fichier :
# Déclaration de la fonction
function pom_contains_version {
grep "<version>$1</version>" pom.xml --silent
}
# Utilisation de la fonction
if pom_contains_version "develop"; then # Le if se base sur le code retour de la fonction : $?
# ...
fiDans les exemples, on renvoie un statut 1, mais tout nombre différent de 0 est possible.
Lancer une erreur depuis une fonction :
echo "Impossible de trouver la version de develop sur GitLab" >&2
exit 1Détecter une erreur lors du dernier appel de fonction :
if [ $? -ne 0 ]; then exit 1; fi