Forum Programmation.shell Vérifier vos scripts SHELL avec shellcheck

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
6
16
avr.
2014

Bonjour a tous,

je viens de découvrir un petit outil sympathique qui permet de vérifier la synthase, les erreurs de codes ou encore si votre script est optimisé ou pas!

http://www.shellcheck.net/

J'ai pu tester l'outil et je le trouve absolument génial!!

Le test sur mon blog:

http://journaldunadminlinux.fr/verifier-vos-scripts-shell-avec-shellcheck/

Bonne journée a tous!!

Forum Programmation.shell cherche petit script car j'ai la flemme

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
3
avr.
2014

Mon souci : j'ai un dossier "projet" avec pas mal de sous dossier, et dans certains sous dossiers, il y a des liens symboliques vers un dossier de "projet/data".

le premier probleme, c'est que data fait 200Go,
le deuxieme je dois transferer ce dossier de projet sur un serveur CIFS, serveur qui ne gere evidemment pas les liens symboliques (mais gere la deduplication)

1° idée : tu remplaces les liens par un copie physique des datas, le serveur deduplique, ton (…)

Forum Programmation.shell Faire un ssh après un sudo

Posté par  . Licence CC By‑SA.
Étiquettes :
0
17
mar.
2014

Bonjour,

Je voudrais me connecter à une machineB avec certain user qui n’est accessible qu’après un sudo.

Je peux me connecter à une machineA
ssh machineA
Puis
machineA> sudo su – superman
puis
superman@machineA> ssh machineB

En effet sur la machineB je ne peux pas faire de sudo.
machineA> sudo su – superman ssh machineB
me demande un mot de passe.
machineA> sudo –l
donne
(root) NOPASSWD: /usr/bin/su - superman, (root) /[a-z]*app/travail/*/*.sh

J’ai testé
machineA> sudo su – superman <&lt (…)

Forum Programmation.shell Bash, regexp

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
3
12
mar.
2014

Bonjour,

je cherche à séparer des données d'une chaîne de caractère pour les écrire dans un tableau ou plusieurs variables, en bash.
La chaîne peut resembler à ceci:
'toto','tata' ,'titi' , 'ici avec espace','et, éventuellement\'comme ça'

On a donc:
'toto'
'tata'
'titi'
'ici avec espace'
'et, éventuellement\'comme ça'

Les espaces ne sont pas protégés par un \ (et même si cela avait été le cas, j'aurais été autant ennuyé).
J'ai parfois des caractères blancs autour des virgules.

J'ai essayé plein (…)

Forum Programmation.shell Ctrl+c ferme xterm

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

Bonjour,

Ma question est assez idiote, mais voilà mon problème.

J'ai une application C++/Qt qui génère un script (index.csh), et l'exécute, jusque là, pas de problème.

Au début du script généré, il y a la commande:

git init

Cette commande peut être trop longue quand il y a beaucoup de fichiers dans le dossier en question.
Les utilisateurs aimeraient avoir la possibilités de faire un ctrl+C pour couper le "git init" et passer à la suite du script.
Seul problème, (…)

Forum Programmation.shell Utiliser la sortie d'une commande comme chaîne de recherche de awk

Posté par  . Licence CC By‑SA.
Étiquettes :
1
23
déc.
2013

Bonjour.

Je cherche à obtenir le "device file" correspondant à un chemin (sur une clé USB, en l'occurrence).

Disons que mon chemin est /media/cle/rep1/rep2/rep3/fichier. (J'ai accès à ça facilement dans Thunar via les actions personnalisées.)

Je veux :

  • extraire /media/cle
  • chercher ça dans /proc/mounts
  • en déduire /dev/sdb1 (par exemple)

Partant de /media/cle, je peux réaliser les étapes 2 et 3 avec awk :

awk '/\/media\/cle/ {print $1}' /proc/mounts

J'arrive à extraire /media/cle avec sed :

echo /media/cle/rep1/rep2/rep3/fichier | sed -e 
(…)

Forum Programmation.shell Comportement bizarre de redirection en ksh

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
27
nov.
2013

Bonjour tout le monde,

Je dois debugger un script qui n'a pas le même comportement sur 2 machines différentes et je ne sais plus où chercher les différences.

Voilà le bout de code très simplifier qui ne fonctionne pas :

$ echo plop > >(tee /tmp/output)
ksh: : cannot create [Permission denied]
$

Cette même commande fonctionne très bien sur une autre machine.

PS: ce truc bizarre n'est pas de moi, je ne veut pas le re-écrire mais juste comprendre (…)

Forum Programmation.shell Espaces dans les noms de fichiers

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
2
1
nov.
2013

Bonjour à tous,

C'est sûrement une question de noob mais j'ai eu du mal à trouver une réponse ailleurs.
J'ai un plusieurs répertoires de fichiers Wav à encoder en Mp3 (lame fichier.wav fichier.mp3).
Je me suis dit qu'un script m'aiderait bien, du genre :

for i in `find /home -name "*.wav"`; do lame $i $i.mp3 -V2; done

Avec cette méthode, les espaces ne sont pas bien gérés (ici je me contente d'un echo) :

for i in `find /home -name
(…)

Forum Programmation.shell Comment contrôler le read input dans un script shell

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
1
nov.
2013

Bonjour,

Comment contrôler le read input dans un script shell

Exemple:

echo "Please enter your name and your surname:"
read name surname
echo "Welcome $name $surname"

ici je veux contrôlé si le name et le surname sont introduit tous les deux dans le cas contraire un message d'erreur ce retourne jusqu'au que le name et surname sont introduit pour que l'echo s'exécute

Merci d'avance pour vos propositions !

Forum Programmation.shell Extraction de données avec AWK

Posté par  . Licence CC By‑SA.
Étiquettes :
0
31
oct.
2013

Bonsoir tout le monde,

Intéressé par un récent billet de blog sur B. Kernighan , j'essaie de scripter avec AWK une extraction de coordonnées cartésiennes de certains atomes dans un output de dynamique moléculaire.
Ce dernier est composée d'une ligne de titre, d'un header général, et d'un certain nombre de configurations (snapshots) du systeme pris a intervalles de temps réguliers (dénotés par un timestep). Plus précisément, chaque snapshot comporte 4 lignes de header (1 + 3 lignes pour les vecteurs (…)

Forum Programmation.shell Éviter les boucles avec des syntaxes de gourou

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
3
28
oct.
2013

Salut les moules !

Pour l'instant, j'ai un script comme ça :

for f in *.JPG
do
    convert $f -verbose -resize 600x -quality 85 resized/$f
done

C'est marrant, mais j'aimerais savoir s'il existe une syntaxe de gourou qui me permettrait de faire ça en une ligne sans script, genre avec ce genre de commande :

convert * -verbose -resize 600x -quality 85 resized/*

Je vois bien que la seconde étoile fait que je me retrouve avec un problème. C'est possible de (…)

Forum Programmation.shell Récuperer noms d'un fichier pour l'envoyer dans une chaine de caractère dans un fichier

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
22
oct.
2013

Bonjour,

Je souhaiterais avoir de l'aide sur l'édition d'un script ??

Dès que l'on branche un lecteur de CV sur Mac, il génère un fichier cu.usbmodem XXX, sachant que XXX est le numéro du Port.

Je souhaiterais donc savoir comment récupérer les 3 numéros du port situé à la fin du fichier, et les envoyer dans une chaine de caractère >> >> >> ( COM1=cu.usbmodem XXX ) située dans un fichier "**.ini" ?

Je voudrais savoir si quelqu'un peut m'aider ou (…)

Forum Programmation.shell rechercher / remplacer multiligne

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
14
oct.
2013

Bonjour,
sur un site web dont je gere le serveur, nous avons une verole.

J'ai trouvé le motif à supprimer de plusieurs fichiers.
ce motif s'obtient facilement en faisant

grep -B12 -A15 aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRIL3N0YXQucGhw index.php

maintenant je voudrais supprimer ces lignes du fichier index.php
j'ai pensé à sed/awk, mais je ne sais pas comment lui dire de prendre les 12 lignes avant le motif, et 15 lignes apres pour les remplacer par "rien"

evidemment s'il n'y avait qu'un seul fichier, je (…)

Forum Programmation.shell [Résolu] BASH : "Gras", mais pas "clair" ?

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
4
26
sept.
2013

Bonjour, bonsoir !

Une petite question toute bête et pas très utile mais une question quand même :
'echo -e "\e[32mYO"' va écrire 'YO' en vert foncé
'echo -e "\e[92mYO"' va écrire 'YO' en vert clair
'echo -e "\e[1;32mYO"' va écrire 'YO' en vert clair gras (de même pour ''echo -e "\e[1;92mYO"'')

La question : Peut-on écrire 'YO' en vert foncé gras ? :p

(La question s'étend aussi au 'vert sombre' (\e[2;31m) peut-on écrire en vert sombre gras ?)

Forum Programmation.shell Fonctions et alias de même noms, et surcharge d'alias

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
3
5
août
2013

Bonjour,

J'ai deux questions à propos du shell sous GNU/Linux (bash ou zsh).

==> Si un alias et une fonction de même nom existent, comment savoir laquelle sera appelée ?
Ex :

alias rr='echo Hello'
rr () { command echo Hello "$@"; }

Dans ce cas, c'est ennuyeux avec zsh : à la définition de la fonction rr, le nom est remplacé par l'alias, et c'est echo qui va être remplacé par la fonction définie… (et donc, rr world renvoie (…)

Forum Programmation.shell Chroot avec les binaires de base d'un OS

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes : aucune
1
3
août
2013

Bonjour,

il me semble avoir lu y a pas longtemps sur linuxfr qu'il y aurait une commande pour copier les binaires de base de l'OS (ls, mv, etc. en gros surtout ce qu'on va trouver dans /bin j'imagine), mais aussi pour choisir une liste supplémentaire d'outils a inclure dans le chroot. Mais je n'arrive pas a retrouver ce post ni a trouver d'information a ce sujet sur le net (cependant je me dis qu'un tel outil serait probablement spécifique a (…)

Forum Programmation.shell Quoter une variable contenant des arguments de ligne de commande

Posté par  . Licence CC By‑SA.
Étiquettes :
0
16
juin
2013

J'ai un script bash qui fait une sauvegarde incrémentale dans un tar.gz. Une des variables de configuration doit contenir un nom de répertoires avec caractère générique (glob), et je n'arrive pas à le faire passer

## Configuration de sauvegarde
##############################
repertoires="/home/jgo
/var/spool/mail/jgo"
liste_exclusion="--exclude \"/home/jgo/divers/*\" --exclude \"/home/jgo/.recoll/xapiandb/*.DB\""
ciblelocale=/var/backup/

## autres options
#################

timestampsauvegarde=/home/jgo/timestamp-sauvegarde
nouvelledate=`date "+%s"`
nomclair=${ciblelocale}backup_${nouvelledate}.tar.gz
temp=/tmp/
liste
(…)

Forum Programmation.shell Array not found

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
0
11
juin
2013

Bonjour,

Je suis confronté à un problème dont je ne trouve pas la solution. Dans un script je suis amené à utiliser des tableaux pour stocker des valeurs. Sur tout mes serveurs (redhat) ça marche sauf sur un qui n'est pas la même distri (openmediavault).

J'ai reproduis le problème avec une version simplifié du script

#!/bin/bash

bash --version

declare -a myarray[0]="hello"
declare -a myarray[1]="world"

prtinf "${myarray[*]}"
printf "\n"

Cette version me donne

#sh test.sh 
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright
(…)

Forum Programmation.shell Différentes version du shell ?

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

Bonjour, j'ai commencé à apprendre le shell hier afin d'écrire deux script dont l'un permet de lancer un binaire et le second d'installer un binaire et ses fichiers. Pas de soucis, car tout fonctionne correctement sur une distribution récente (FC18 et ArchLinux), cependant lorsque j'ai testé le script d'installation sur Ubuntu 12.04, il a commencé à paniquer en me renvoyant quelques erreurs de syntaxe.

Donc j'en viens à ma question, est-ce qu'ils existe une syntaxe différente en fonction de chaque (…)

Forum Programmation.shell gawk traitement du port serie ttyS0

Posté par  . Licence CC By‑SA.
Étiquettes :
0
23
mai
2013

bonjour

j'ai un appareil sur ttyS0 en 115200 8b 1stop qui émet des distances sous la forme :

12.25^M
13.89^M
14.89^M
15.89^M
25.87^M

mon script :
cat /dev/ttySO | dos2unix -l | gawk '{print strftime ("%F %T", -bash;}'

cela a fonctionné correctement :( quelques temps résultat attendu :

2013-05-22 12:45:26 12.25
2013-05-22 12:45:26 13.89

lorsque j'ai sauvegardé le script pour le retrouver plus tard avec la commande :
echo " cat /dev/ttySO | dos2unix -l | gawk '{print strftime (…)