Journal Lire de fichiers de configuration depuis un script shell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
5
juin
2015

La petite technique shell du vendredi. Pour lire un fichier de configuration du style INI depuis un script shell, on peut utiliser le petit script sed suivant

1 {
  x
  s/^/default/
  x
}

/^#/n

/^\[/ {
  s/\[\(.*\)\]/\1/
  x
  b
}

/=/ {
  s/^[[:space:]]*//
  s/[[:space:]]*=[[:space:]]*/|/
  G
  s/\(.*\)\n\(.*\)/\2|\1/
  p
}

Il transforme

    # last modified 1 April 2001 by John Doe
    [owner]
    name=John Doe
    organization=Acme Widgets Inc.

    [database]
    # use IP address in case network name resolution is not working
    server=192.0.2.62
    port=143
(…)

Journal le shell trick tout pourri du vendredi : .lsignore

Posté par  . Licence CC By‑SA.
Étiquettes :
14
24
avr.
2015

Salut,

J'en avais marre de voir des __pycache__ dans mes arborescences python.

[dcp@mb pyaf] $ ls -a
__pycache__ TODO  utils  mnd samples testing umc ...

Pour ne plus les afficher avec ls je me suis souvenu de ça :

[dcp@mb pyaf] $ ls --hide='__pycache__'
TODO  utils  mnd samples testing umc ...

Cette option permet de ne pas lister le motif fournit en argument. Elle peut-être répétée autant de fois que l'on veut.

Voici donc (…)

Forum Programmation.shell ksh : exclusion d'une série de fichier dans un tar : prb d'expension

Posté par  . Licence CC By‑SA.
Étiquettes :
0
21
avr.
2015

Je bute sur un truc qui me gave depuis plusieurs heures : j'ai un script qui crée une archive d'où je veux exclure certains fichiers.
En gros, ca fait :

    #!/bin/ksh
    export TAR_EXCLUDE="--exclude '*var/cache/*'"
    tar $TAR_EXCLUDE -pvczf ~/tmp/archive.tgz appli/

et mon repertoire appli est constitué de :
appli/
appli/bidule/fichier.txt
appli/truc/a/mettre/dans/le/TGZ
appli/non/var/cache/pas/ce/truc/dans/le/tgz
appli/non/plus/var/cache/pas/dans/le/tgz
appli/et/ca/dedans.txt

Je veux exclure "var/cache" (et tout ce qu'il contient) de mon archive, sachant que cette structure n'est pas forcément à la racine de appli.

J'ai (…)

Journal lns: ln -s pour les étourdis

Posté par  . Licence CC By‑SA.
Étiquettes :
21
16
avr.
2015

Bonjour à toutes et à tous,

encore un journal ennuyeux, alors lisez vraiment si vous n'avez que ça à faire, ou si vous avez une montagne de choses à faire mais que vous avez quand même du temps à perdre.

Une question pour commencer. Fermez vos terminaux, rangez vos documents. Vous, là-bas, éteignez votre téléphone s'il vous plaît. Ne trichez pas !

Bien. Quelle est la bonne commande pour créer un lien symbolique de nom $lien qui pointe vers $cible ? (plusieurs (…)

Petite histoire du Bourne Shell

90
20
mar.
2015
Doc

Nos systèmes d'exploitations sont forgés par l'histoire. Ils se sont formés par stratifications d'inventions accumulées. Les idées de Ken Thompson, Steve Bourne, et Bill Joy - pour ne citer que les personnes dont il est question dans cette dépêche - sont fossilisées dans les sources des logiciels que nous utilisons aujourd'hui. Parce qu'un rappel historique nous permet de comprendre les raisons du fonctionnement actuel d'un logiciel, cette dépêche présente rapidement l'histoire du shell de Bourne.

Journal Assistant de projet logiciel

Posté par  (site web personnel) . Licence CC By‑SA.
9
17
mar.
2015

Cher Journal,

je souhaite de présenter Anvil 0.3.0 un petit assistant de projet logiciel fonctionnant avec git, qui te propose:

  • de réécrire l'historique d'un projet en éliminant les espaces avec anvil_whitespace.
  • de réécrire l'historique d'un projet en convertissant les textes en UTF-8 avec anvil_encoding.
  • de réécrire l'historique d'un projet et de renommer les fichiers en utilisant un script sed avec anvil_sed.
  • de prescrire des règles sur les espaces, les mots-clefs SCM (comme $CVS$) et les (…)

Journal Des bookmarks dans mon terminal !

Posté par  . Licence CC By‑SA.
Étiquettes :
20
9
jan.
2015

Coucou à tous !

Je voulais vous partager une astuce toute simple que je viens de mettre en place sur mon ordi, en espérant que ça puisse servir à d'autre.

Il m'arrive régulièrement d'avoir simultanément plusieurs dossiers de travail en console, et je voulais pouvoir passer facilement de l'un à l'autre en console. Je me suis donc créé deux commandes shell : x et ccd. Je les ai appelé comme ça par ce que je manquait d'inspiration, que x c'est (…)

Journal Installation de fish shell sur Debian Jessy

Posté par  (site web personnel) . Licence CC By‑SA.
18
2
jan.
2015

fish est un shell comme zsh ou bash : http://fishshell.com/

Pour moi, son point fort sont les autosuggestions, il est rarement nécessaire de taper une deuxième fois une commande et ça sans nécessiter de ^R.

Le paquet Debian n'est malheureusement pas dans les dépôts de Jessy, il arrivera dans les backports dès que possible.

Lire pour plus de détails les url suivantes :

Le projet propose des paquets pour les différentes distribution linux via le builder opensuse (…)

Liquid Prompt 1.9

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nÿco et Nils Ratusznik. Modéré par patrick_g. Licence CC By‑SA.
39
14
nov.
2014
Ligne de commande

Le Liquid Prompt est un prompt fluide affichant de manière limpide des informations utiles là où vous les verrez : le prompt de votre shell bash ou zsh. Le liquidprompt était déjà bien rempli de fonctionnalités, mais celles-ci ont été stabilisées et leurs performances améliorées durant les mois écoulés. Il était temps de sortir une nouvelle version officiellement stable.

Pour les détails de cette version surtout composée de correctifs (indicateurs de batterie, température, charge processeur, nom de machine, gestion de code source, chemin, prompt, horloge, etc.) ; les curieux sont invités à consulter le fichier CHANGES : Battery indicator, Temperature indicator, CPU load, Hostname, VCS (Git, Fossil, Subversion, Bazar, Mercurial), Analog clock, etc.

Je profite de cette dépêche pour remercier chaudement les 15 contributeurs qui par leurs patchs ont contribué à cette version : Anthony Gelibert, Frédéric Mahé, Panayiotis Kkolos, Étienne Deparis, François Schmidts, Linus Wallgren, Alexander Belaev, Bartosz Janda, Brett McBride, Chase Colman, Cosmin L. Neagu, Matthew Micene, Vincent Lara, Wilson Maravilha et Yannack. Mais aussi tous ceux qui ont signalés des bogues ou proposé des patchs refusés ou en attente.

Forum Linux.débutant Exercice shell script

Posté par  . Licence CC By‑SA.
Étiquettes :
1
4
nov.
2014

Bonsoir, demain j'ai un contrôle et j'essaye de m'entrainer à faire des scripts :

Je bloque pour ce script :

Exercice 2 : et-ou

Écrivez deux scripts et.sh et ou.sh, permettant de reproduire le comportement des opérateurs && et || à
l’aide de boucles. Les commandes à exécuter (sans argument) seront passées en paramètres du script l’une
après l’autre.

Voici mon code, comment je fait pour faire exécuter l'argument ? Quand je met simplement $i j'ai une erreur

#!/bin/sh

if [
(…)

Revue des techniques de programmation en shell

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nils Ratusznik, palm123, Nÿco, Yves Bourguignon et Pierre Jarillon. Modéré par Nils Ratusznik. Licence CC By‑SA.
114
22
sept.
2014
Ligne de commande

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

Forum Programmation.shell [Résolu] Appel de SSH depuis un Shell script (Bash)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
1
13
juin
2014

Bonjour,

En voulant appeler SSH depuis un script Shell (Bash), j'ai les erreurs suivantes : Pseudo-terminal will not be allocated because stdin is not a terminal. et stdin: is not a tty

Ma ligne de commande pour appeler le SSH est la suivante :
DISPLAY=y SSH_ASKPASS=filename setsid ssh -t -X -o 'PreferredAuthentications password,keyboard-interactive' -o 'StrictHostKeyChecking no' ${1:-}

En googlant un peu, j'ai essayé la méthode indiquant d'ajouter un -t et donc avec la ligne de commande suivante, j'ai une autre (…)