Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/11/2020, à 15:35

Caille

Introduction aux batch.sh ?

Bonjour,

J'expérimente les scripts !
Lorsque je lance mon script, il faut en même temps rentrer les données à traiter.
Comment faire pour qu'après son lancement le script demande le premier argument, puis le deuxième, pour enfin exécuter le script (si il n'y a que deux arguments).
Si j'omet un argument, il me sera redemandé.

J'ai lancé la commande, mais il y a beaucoup trop d'infos pour mon modeste besoin de débutant.

man bash

J'ai également été là mais que l'histoire de bash shell ? : https://fr.wikipedia.org/wiki/Bourne-Again_shell
J'ai aussi été vers la documentation, mais je n'ai rien trouvé concernant les commandes : https://doc.ubuntu-fr.org/tutoriel/script_shell

#!/bin/bash
# appel du script : ./bonjour nom prenom
if [ $# = 2 ]
 then
echo "Bonjour $1 $2 et bonne journée !"
 else
echo "Syntaxe : $0 Nom: Prénom:"
fi 
caille@caille-N76VB:/mnt/3E64D2DA64D2944D/pho$ ./bonjour.sh robert 1985
Bonjour robert 1985 et bonne journée !
caille@caille-N76VB:/mnt/3E64D2DA64D2944D/pho$ 

Dans ce cas, si je place un nombre il le considère comme mon nom
Dans le cas si dessus, je désire qu'il me demande:
Votre Nom:
Votre Prénom:
Ensuite l'exécution commence !

Comment donner des valeurs numériques à $1 et $2 par exemple ?

Dernière modification par Caille (Le 23/11/2020, à 16:04)

Hors ligne

#2 Le 23/11/2020, à 15:51

Watael

Re : Introduction aux batch.sh ?

Salut,

une commande pour voir les commandes bash : help
cela donne la liste des commandes bash, et leur syntaxe.
pour voir la description d'une commande, taper : help nom2laCommande, où nom2laCommande est un nom de commande valide, bien sûr ! wink
et tu auras davantage d'informations dans le man.

avant de coder, il faut impérativement rédiger un algorithme : une description précise de l'enchaînement des opérations nécessaires à la réalisation de la tâche.
tu y verras plus clair, et tes questions aussi.

PS : le numéraire, c'est de l'argent. toi, tu veux des valeurs numériques. smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 23/11/2020, à 17:18

serged

Re : Introduction aux batch.sh ?

help read

Avez-vous lu ce topic : Documentations à consulter avant toute question ?

Dernière modification par serged (Le 23/11/2020, à 17:20)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#4 Le 23/11/2020, à 18:39

Caille

Re : Introduction aux batch.sh ?

Bonjour,

J'ai lu pas mal de choses, mais probablement pas ce qui m’intéresse pour mon sujet.
Je n'ai pas le temps de lire des tonnes d'informations pour trouver une réponse simple à ma question.
Déjà un truc simple que je n'arrive pas à faire.

date +%s   secondes depuis 1970-01-01 00:00:00 UTC

J'aimerais calculer le nombre de secondes correspondant à une date donnée entre le 01 Janvier 1970 et aujourd'hui, début de l'heure UNIX.
A cette heure Lundi 23 Novembre 2020 à 18:33:32 cette commande répond "1606152812" (heure d'hiver).
Comme ce site : https://timestamp-tool.fr/  Merci, je vais continuer à chercher !
Il faudrait qu'il existe la commande inverse à celle ci-dessus, mais je ne l'ai pas trouvée. tongue

Cordialement.

Hors ligne

#5 Le 23/11/2020, à 18:44

pingouinux

Re : Introduction aux batch.sh ?

Bonsoir,

Caille a écrit :

Il faudrait qu'il existe la commande inverse à celle ci-dessus, mais je ne l'ai pas trouvée.

$ date -d @1606152812
Mon Nov 23 18:33:32 CET 2020

Hors ligne

#6 Le 23/11/2020, à 19:09

Caille

Re : Introduction aux batch.sh ?

Bonsoir,

Je ne comprend déjà pas très bien le date --help.

-d, --date=CHAÎNE          afficher la date décrite par CHAÎNE, pas « now » (maintenant)
      --debug                annoter la date analysée
-d délim	continue jusqu'à ce que le premier caractère de DELIM soit lu,
    		au lieu du retour à la ligne

Il existe même la commande : help --help

$ help --help
help: help [-dms] [motif ...]
    Affiche des informations sur les commandes intégrées.
    
    Affiche de courts résumés des commandes intégrées.  Si MOTIF est
    spécifié, une aide détaillée de toutes les commandes correspondantes
    au MOTIF est affichée, sinon la liste des sujets d'aide est affichée.
    
    Options :
      -d	affiche une courte description pour chaque sujet
      -m	affiche l'aide dans un format proche des pages de man(uel)
      -s	n'affiche qu'une courte aide pour chaque sujet correspondant au
    		MOTIF
    
    Arguments :
      MOTIF	Motif spécifiant un sujet d'aide
    
    Code de retour :
    Renvoie le code de succès à moins que le MOTIF ne soit pas trouvé ou qu'une
    option non valable ne soit donnée.

Il faut déjà que je me fasse à la "notice" de la ligne de commande.

Merci à tous, je reprend ça demain. wink

Hors ligne

#7 Le 24/11/2020, à 09:48

Caille

Re : Introduction aux batch.sh ?

Bonjour,

J'aimerais pouvoir lancer mon bash avec une date au format JJ/MM/AAAA toujours à l'horaire 00:00:00.
Que cette date soit convertie en nombre UNIX depuis le 01/01/1970 et attribué à une variable $1 par exemple ?
Pour récupérer le nombre UNIX d'aujourd'hui, c'est simple car il existe la commande :

date +%s
1606206650

Par contre comment donner une date en entrée dans un bash, je ne trouve pas, exemple ?

./bash.sh 12/07/2014

Lance l'exécution...

Dernière modification par Caille (Le 24/11/2020, à 11:05)

Hors ligne

#8 Le 24/11/2020, à 11:52

Caille

Re : Introduction aux batch.sh ?

Caille a écrit :

Par contre comment donner une date en entrée dans un bash, je ne trouve pas, exemple ?

./bash.sh 12/07/2014

Transforme la date en nombre entier et lance l'exécution...

Bonjour,

Existe-t-il un livre "le bash/shell pour les nuls". tongue

Je suis depuis ce matin 7h00 en train d'essayer de comprendre la doc date --help, je n'y arrive pas, comment entrer la commande ci-dessus ?

caille@caille-N76VB:~$ date --help
Utilisation : date [OPTION]... [+FORMAT]
         ou : date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Afficher la date actuelle au FORMAT indiqué ou initialiser la date système.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -d, --date=CHAÎNE          afficher la date décrite par CHAÎNE, pas « now » (maintenant)
      --debug                annoter la date analysée
							   et émettre des avertissements sur stderr au sujet
                              des utilisations douteuses
  -f, --file=FICHIER_DATES   comme --date mais pour chaque ligne de FICHIER_DATES
  -I[FMT], --iso-8601[=FMT]  afficher la date et l'heure au format
                               ISO 8601. FMT est « date » pour la date seule
                               (par défaut), « hours », « minutes », « seconds » ou
                               « ns » pour indiquer la précision des date et heure.
                               Exemple : 2006-08-14T02:34:56-06:00
  -R, --rfc-email            afficher la date et l'heure au format RFC 5322.
                               Exemple : Mon, 07 Aug 2006 12:34:56 -0600
      --rfc-3339=FMT         afficher la date et l'heure au format RFC 3339.
                               FMT est « date », « seconds » ou « ns »
                               pour afficher la date et l'heure avec la précision
                               demandée.
                               Exemple : 2006-08-14 02:34:56-06:00
  -r, --reference=FICHIER    afficher la date de dernière modification de FICHIER
  -s, --set=CHAÎNE           initialiser la date selon CHAÎNE
  -u, --utc, --universal     afficher ou initialiser au système de temps universel
      --help     afficher l'aide et quitter
      --version  afficher des informations de version et quitter

FORMAT contrôle l'affichage. Les séquences interprétées sont :

  %%   un caractère %
  %a   nom du jour de la semaine abrégé (par exemple dim.)
  %A   nom complet localisé du jour de la semaine (par exemple dimanche)
  %b   nom abrégé localisé du mois (par exemple janv.)
  %B   nom complet localisé du mois (par exemple janvier)
  %c   date et heure localisées (par exemple jeu. 03 mars 2005 23:05:25 CET)
  %C   siècle, comme %Y, sans les deux derniers chiffres (par exemple 20)
  %d   jour du mois (par exemple 01)
  %D   date, identique à %m/%d/%y
  %e   jour du mois, éventuellement complété par une espace, identique à %_d
  %F   date complète, identique à %Y-%m-%d
  %g   deux derniers chiffres de l'année du numéro de semaine ISO (voir %G)
  %G   année correspondant au numéro de semaine ISO (voir %V) ; normalement
         uniquement utile avec %V
  %h   identique à %b
  %H   heure (00..23)
  %I   heure (01..12)
  %j   jour de l'année (001..366)
  %k   heure avec espace ( 0..23), identique à %_H
  %l   heure avec espace ( 1..12), identique à %_I
  %m   mois (01..12)
  %M   minute (00..59)
  %n   un saut de ligne
  %N   nanosecondes (000000000..999999999)
  %p   équivalent locale de AM ou PM (blanc si inconnu)
  %P   identique à %p mais en minuscules
  %q   trimestre (1..4)
  %r   heure locale au format 12 heures (par exemple 11:11:04 PM)
  %R   heure en format 24 heures identique à %H:%M
  %s   secondes depuis 1970-01-01 00:00:00 UTC
  %S   secondes (00..60)
  %t   une tabulation
  %T   l'heure, identique à %H:%M:%S
  %u   jour de la semaine (1..7) ; 1 représente le lundi
  %U   numéro de la semaine de l'année, avec dimanche en premier jour de la
         semaine (00..53)
  %V   numéro de la semaine ISO, avec lundi en premier jour de la semaine
  %w   jour de la semaine (0..6), 0 représente le dimanche
  %W   numéro de la semaine, avec lundi en premier jour de la semaine (00..53)
  %x   représentation localisée de la date (par exemple 12/31/99)
  %X   représentation localisée de l'heure (par exemple 23:13:48)
  %y   deux derniers chiffres de l'année (00..99)
  %Y   année
  %z   fuseau horaire numérique +hhmm  (par exemple -0400)
  %:z  fuseau horaire numérique +hh:mm (par exemple -04:00)
  %::z  fuseau horaire numérique +hh:mm:ss (par exemple -04:00:00)
  %:::z  fuseau horaire numérique utilisant « : » pour la précision
         (par exemple -04, +05:30)
  %Z   abréviation alphabétique des fuseaux horaires (par exemple EDT)

Par défaut, les champs de dates numériques sont complétés par des zéros.
Les attributs optionnels suivants peuvent suivre « % » :

  -  (trait d'union) ne pas compléter le champ
  _  (tiret bas) compléter avec des espaces
  0  (zéro) compléter avec des zéros
  ^  utiliser des majuscules si possible
  #  utiliser la casse opposée si possible

Chaque attribut est suivi d'un champ optionnel de largeur sous la forme
d'un nombre décimal, éventuellement suivi d'un des modificateurs suivants :
E pour utiliser la représentation localisée alternative si disponible ou
O pour utiliser la représentation localisée alternative des symboles numériques
si disponible.

Exemples :
Convertir les secondes depuis Epoch (1970-01-01 UTC) en une date :
  $ date --date='@2147483647'

Afficher l'heure en Martinique (utilisez tzselect(1)) pour trouver TZ) :
  $ TZ='America/Martinique' date

Afficher l'heure locale pour 9 h du matin, vendredi prochain en Martinique :
  $ date --date='TZ="America/Martinique" 09:00 next Fri'

Aide en ligne de GNU coreutils : <https://www.gnu.org/software/coreutils/>
Signalez les problèmes de traduction de « date » à : <traduc@traduc.org>
Documentation complète à : <https://www.gnu.org/software/coreutils/date>
ou disponible localement via: info '(coreutils) date invocation'
caille@caille-N76VB:~$ 

Hors ligne

#9 Le 24/11/2020, à 12:06

pingouinux

Re : Introduction aux batch.sh ?

Le nom du script peut prêter à confusion…
Il faut fournir une date dans un format reconnu par la commande date (Voir info date)).
12/07/2014 serait interprétée comme "7 décembre 2014".

Tu peux faire ceci, par exemple :

$ cat bash.sh
#!/bin/bash
dat=$1
nb_secondes=$(date -d "$dat" +%s)
echo "$dat => $nb_secondes secondes"
$ ./bash.sh 2014-07-12
2014-07-12 => 1405116000 secondes

Hors ligne

#10 Le 24/11/2020, à 14:07

Hizoka

Re : Introduction aux batch.sh ?

Existe-t-il un livre "le bash/shell pour les nuls".

https://tldp.org/LDP/abs/html/abs-guide.html


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#11 Le 24/11/2020, à 15:16

Caille

Re : Introduction aux batch.sh ?

Bonjour,

Merci pour vos réponses !
Je vais essayer de me débrouiller, mais ce n'est pas gagné.

Cordialement.

Hors ligne

#12 Le 24/11/2020, à 15:49

MicP

Re : Introduction aux batch.sh ?

Bonjour

Au cas où, cette page web pourrait t'aider à comprendre
pourquoi il y a tant d'options utilisables avec la commande date
et pourquoi tant de formats différents possibles.

C'est là que tu comprends que
quand tu prends un RDV pour dialoguer sur le web avec quelqu'un d'un autre pays (comme par exemple au Canada ou aux États Unis),
il faut s'entendre aussi sur le format de la date/heure.

Voir aussi :
https://fr.wikipedia.org/wiki/ISO_8601
et
https://fr.wikipedia.org/wiki/Temps_uni … donn%C3%A9

=======
Tout plein de beaux liens concernant les scripts sur cette page : https://wiki.bash-hackers.org/
et une autre lien : http://mywiki.wooledge.org/BashPitfalls

Celui là est un peux vieux, mais j'avais bien aimé : http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/

Dernière modification par MicP (Le 24/11/2020, à 16:25)

Hors ligne

#13 Le 24/11/2020, à 18:53

Caille

Re : Introduction aux batch.sh ?

Bonsoir MicP,

C'est bon, j'ai de la lecture pour cette nuit. tongue
J'ajoute celui-ci que je suis en train de lire également: https://fr.wikibooks.org/wiki/Programma … troduction

Hors ligne

#14 Le 24/11/2020, à 19:48

Watael

Re : Introduction aux batch.sh ?

à propos du wikibooks :
- il faut mettre des guillemets autour du Développement des variables. TOUJOURS*.
- l'itération d'un tableau doit se faire avec @ et pas *
ça ne pose pas de problème lorsqu'il n'y a pas de guillemets, mais
imaginons un tableau tel que

tab[0]='foo'
tab[1]='bar baz'

sans guillemets, l'itération du tableau sera fausse (tant avec * qu'avec @) :

$ for i in ${tab[*]}; do echo "$i"; done
foo
bar
baz

maintenant, pour comprendre, essayez * puis @ avec des guillemets.

et je m'arrête là, parce qu'après je m'énerve, et je deviens très mauvais.

--
* à moins de savoir pourquoi. smile

Dernière modification par Watael (Le 24/11/2020, à 19:50)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#15 Le 25/11/2020, à 11:29

MicP

Re : Introduction aux batch.sh ?

Pour que la lecture des pages man soit plus agréable,
ajoute ces lignes de commande à la fin de ton fichier ~/.bashrc

# Pager less en couleurs => man pages en couleurs
#  Voir :
#         man termcap
#         man console_codes
#
export                             \
LESS_TERMCAP_mb=$'\033[1;31m'      \
LESS_TERMCAP_md=$'\033[1;38;5;74m' \
LESS_TERMCAP_me=$'\033[0m'         \
LESS_TERMCAP_se=$'\033[0m'         \
LESS_TERMCAP_so=$'\033[1;44;33m'   \
LESS_TERMCAP_ue=$'\033[0m'         \
LESS_TERMCAP_us=$'\033[1;32m'

Dernière modification par MicP (Le 25/11/2020, à 11:35)

Hors ligne

#16 Le 25/11/2020, à 19:06

Caille

Re : Introduction aux batch.sh ?

Bonsoir,

J'ai déjà des couleurs dans mes fichiers bash. wink
J'ai ajouté les lignes dans mon fichier ~/.bashrc, mais ça ne change rien de plus.
J'ai du installer quelques pack langue pour avoir man en français ?

Hors ligne

#17 Le 25/11/2020, à 20:08

Watael

Re : Introduction aux batch.sh ?

as-tu sourcé le ~/.bashrc après la modification ?

$ vim ~/.bashrc # édition du fichier...
$ source ~/.bashrc # la commande source est propre à bash, en mode POSIX on remplace la commande par un point

EDIT: j'ai choisi vim, mais j'aurais peut-être dû mettre $EDITOR, qui éditera le fichier en utilisant l'éditeur de fichier par défaut (celui auquel vous êtes probablement habitué).

Dernière modification par Watael (Le 26/11/2020, à 20:14)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#18 Le 26/11/2020, à 18:30

Caille

Re : Introduction aux batch.sh ?

Watael a écrit :

as-tu sourcé le ~/.bashrc après la modification ?

$ vim ~/.bashrc # modification...
$ source ~/.bashrc # la commande source est propre à bash, en mode POSIX on remplace la commande par un point

Bonjour,

Non je n'avais pas "sourcé" mon fichier ~/.bashrc, je ne sais même pas ce que ça veut dire ?
Je viens de faire la première commande, je reçois comme information que vim n'est pas installé.
J'ai donc installé vim et lancé la commande, j'ai reçu le message ci-dessous tout en couleurs, c'est déjà Noël. wink

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
                                                             1,1          Haut

Avec principalement du bleu, ainsi que du orange, du blanc et du mauve.
De plus mon terminal refuse de ce fermer, je l'ai donc fermé quand même. tongue

Je n'ai pas compris la dernière ligne ?

Watael a écrit :
$ source ~/.bashrc # la commande source est propre à bash, en mode POSIX on remplace la commande par un point

En relançant la première commande je reçois ce message ?

[    nom de fichier : ~caille/.bashrc
           modifié : OUI
 nom d'utilisateur : caille   nom d'hôte : caille-N76VB
      processus n° : 41894
Lors de l'ouverture du fichier "/home/caille/.bashrc"
              daté : mer. nov. 25 18:59:57 2020

(1) Un autre programme est peut-être en train d'éditer ce fichier.
    Si c'est le cas, faites attention à ne pas vous retrouver avec
    deux versions différentes du même fichier en faisant des modifications.
    Quitter ou continuer avec attention.
(2) Une session d'édition de ce fichier a planté.
    Si c'est le cas, utilisez ":recover" ou "vim -r /home/caille/.bashrc"
    pour récupérer le fichier (consultez ":help recovery").
    Si vous l'avez déjà fait, effacez le fichier d'échange "/home/caille/.bashrc
.swp"
    pour éviter ce message.

Le fichier d'échange "~/.bashrc.swp" existe déjà !
[O]uvrir en lecture seule, (E)diter quand même, (R)écupérer, Le (s)upprimer, (Q)
-- Plus --

-- Plus --ESPACE/d/j : écran/page/ligne vers le bas, b/u/k : vers le haut, q : quitter

Impossible de répondre quoi que ce soit ? il me sort même un fichier ~/.bashrc.swp  qui existe déjà ?
J'ai répondu "q" puis "A"
Je n'ai donc rien compris ?
Du coup je ne sais plus quoi faire !

Mon ~/.bashrc actuel :

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

export MANPAGER=most

# Pager less en couleurs => man pages en couleurs
#  Voir :
#         man termcap
#         man console_codes
#
export                             \
LESS_TERMCAP_mb=$'\033[1;31m'      \
LESS_TERMCAP_md=$'\033[1;38;5;74m' \
LESS_TERMCAP_me=$'\033[0m'         \
LESS_TERMCAP_se=$'\033[0m'         \
LESS_TERMCAP_so=$'\033[1;44;33m'   \
LESS_TERMCAP_ue=$'\033[0m'         \
LESS_TERMCAP_us=$'\033[1;32m'

J'attends donc plus de précision...

Dernière modification par Caille (Le 26/11/2020, à 18:37)

Hors ligne

#19 Le 26/11/2020, à 18:39

beuguissime

Re : Introduction aux batch.sh ?

Tu es tombé dans le piège des adorateurs de Vim dont semble faire parti Watael. tongue

Plus sérieusement (enfin presque), vi(m) est un éditeur de texte en mode terminal. Il ne nécessite pas de fenêtre graphique supplémentaire puisqu'il s''ouvre dans le terminal même. La combinaison de touche pour sortir de l'éditeur est volontairement compliquée (touche-double-point puis touche q puis entrée) pour que les gens soient bloqués et obligés de se servir de vim. Autrement personne de sensé ne le ferait et préfèrerait emacs à la place. wink

Hors ligne

#20 Le 26/11/2020, à 18:51

Hizoka

Re : Introduction aux batch.sh ?

meuh non, on utilise nano tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#21 Le 26/11/2020, à 19:05

Caille

Re : Introduction aux batch.sh ?

Merci !

Effectivement, je n'ai pas percuté vim, c'est comme vi un l'éditeur originel de UNIX ?
J'utilise toujours nano, j'ai essayé d'utiliser vi une fois, depuis je suis chauve. lol
Bon du coup je n'ai rien à faire de plus, mais je n'ai pas compris ce que voulait dire sourcer mon ~/.bashrc ?

cordialement.

Hors ligne

#22 Le 26/11/2020, à 19:11

beuguissime

Re : Introduction aux batch.sh ?

Ah j'avais oublié les nanoistes ! tongue

Sourcer signifie essentiellement relire le bashrc pour tenir compte des modifications.
Si tu fermes et rouvres un terminal, le nouveau bashrc sera de toute façon lu. Sourcer évite de fermer son shell courant.

Dernière modification par beuguissime (Le 26/11/2020, à 19:13)

Hors ligne

#23 Le 27/11/2020, à 01:53

MicP

Re : Introduction aux batch.sh ?

Dans ton fichier ~/.bashrc, le nom du pager (qui est less par défaut)
a été changé pour la commande most (qui n'est pas installée par défaut)
par la ligne de commande :

export MANPAGER=most

Les lignes que je t'avais fait ajouter concernent le pager less qui est celui qui est installé par défaut
mais qui n'est plus utilisé sur ton système puisque tu as remplacé le pager par la commande most

======
Pour apprendre à utiliser vim
lance la ligne de commande suivante :

vimtutor

Dernière modification par MicP (Le 27/11/2020, à 04:08)

Hors ligne

#24 Le 27/11/2020, à 07:49

serged

Re : Introduction aux batch.sh ?

beuguissime a écrit :

Ah j'avais oublié les nanoistes ! tongue

Sourcer signifie essentiellement relire le bashrc pour tenir compte des modifications.
Si tu fermes et rouvres un terminal, le nouveau bashrc sera de toute façon lu. Sourcer évite de fermer son shell courant.

Alors qu'il est tout aussi simple d'utiliser gedit ou tout autre éditeur en mode graphique (Kate, Mousepad...) :

gedit ~/.bashrc

[troll]Sinon les masos utiliseront emacs...[/troll]


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#25 Le 27/11/2020, à 10:12

beuguissime

Re : Introduction aux batch.sh ?

serged a écrit :

[troll]Sinon les masos utiliseront emacs...[/troll]

C'est ça qui est formidable avec linux, on a un large choix des outils d'édition. wink

Dernière modification par beuguissime (Le 27/11/2020, à 10:12)

Hors ligne