User Tools

Site Tools


informatique:linux:bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:linux:bash [2021/07/30 13:37] – relecture partielle pteuinformatique:linux:bash [2022/01/02 17:38] – [Liens/Ressources] pteu
Line 360: Line 360:
 </code> </code>
  
 +====Désactiver l'alias====
  
 +Pour afficher si une commande est un alias, on peut faire : ''alias <cmd>'', par exemple :
 +<code bash>
 +alias ls
 + alias ls='ls --color=auto'
 +</code>
 +
 +Et si on souhaite la lancer sans l'alias (''ls'' tout court), on peut utiliser la syntaxe '''<cmd><nowiki>'</nowiki>'' ou ''\<cmd>'' :
 +<code bash>
 +'ls'
 +# ou
 +\ls
 +</code>
 =====Liens/Ressources===== =====Liens/Ressources=====
  
   * [[https://github.com/jlevy/the-art-of-command-line|The Art of Command Line]] (jlevy's GitHub)   * [[https://github.com/jlevy/the-art-of-command-line|The Art of Command Line]] (jlevy's GitHub)
 +  * [[https://betterdev.blog/minimal-safe-bash-script-template/|Minimal safe Bash script template]] (betterdev.blog)
 +Je pose ledit template ici, mais le lien ci-dessous vaut le détour car il explique chaque best-practice en détail !
 +<code bash>
 +#!/usr/bin/env bash
 +
 +set -Eeuo pipefail
 +trap cleanup SIGINT SIGTERM ERR EXIT
 +
 +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
 +
 +usage() {
 +  cat << EOF # remove the space between << and EOF, this is due to web plugin issue
 +Usage: $(basename "${BASH_SOURCE[0]}") [-h] [-v] [-f] -p param_value arg1 [arg2...]
 +
 +Script description here.
 +
 +Available options:
 +
 +-h, --help      Print this help and exit
 +-v, --verbose   Print script debug info
 +-f, --flag      Some flag description
 +-p, --param     Some param description
 +EOF
 +  exit
 +}
 +
 +cleanup() {
 +  trap - SIGINT SIGTERM ERR EXIT
 +  # script cleanup here
 +}
 +
 +setup_colors() {
 +  if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then
 +    NOFORMAT='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m'
 +  else
 +    NOFORMAT='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW=''
 +  fi
 +}
 +
 +msg() {
 +  echo >&2 -e "${1-}"
 +}
 +
 +die() {
 +  local msg=$1
 +  local code=${2-1} # default exit status 1
 +  msg "$msg"
 +  exit "$code"
 +}
 +
 +parse_params() {
 +  # default values of variables set from params
 +  flag=0
 +  param=''
 +
 +  while :; do
 +    case "${1-}" in
 +    -h | --help) usage ;;
 +    -v | --verbose) set -x ;;
 +    --no-color) NO_COLOR=1 ;;
 +    -f | --flag) flag=1 ;; # example flag
 +    -p | --param) # example named parameter
 +      param="${2-}"
 +      shift
 +      ;;
 +    -?*) die "Unknown option: $1" ;;
 +    *) break ;;
 +    esac
 +    shift
 +  done
 +
 +  args=("$@")
 +
 +  # check required params and arguments
 +  [[ -z "${param-}" ]] && die "Missing required parameter: param"
 +  [[ ${#args[@]} -eq 0 ]] && die "Missing script arguments"
 +
 +  return 0
 +}
 +
 +parse_params "$@"
 +setup_colors
 +
 +# script logic here
 +
 +msg "${RED}Read parameters:${NOFORMAT}"
 +msg "- flag: ${flag}"
 +msg "- param: ${param}"
 +msg "- arguments: ${args[*]-}"
 +</code>
informatique/linux/bash.txt · Last modified: 2023/01/09 10:52 by pteu