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 19/01/2016, à 11:17

supras85

Shell Linux - Récupération d'une variable situé dans un autres fichier

Bonjour,

Comme indiqué dans le titre, je souhaiterais récupérer la variable stocké dans un autres fichier.

Exemple :

Dans mon 1er script j'ai la variable définis $host correspondant à une adresse IP :
La variable est à la ligne 4 : host="http://192........"

Dans mon 2ème script je cherche à récupérer le contenu de cette variable, et donc récupérer ce qu'elle contient (donc l'adresse IP)

j'ai beau chercher je n'arrive pas, je bloque...
Toute les solutions que je trouve, je n'arrive pas à les adapter/faire fonctionner.

Par ex voici ce que je voudrais faire (afficher le contenu de la variable) :

echo "MaVariable" $(grep "host" /MonChemin/script.sh)

Mais cela m'affiche toute les lignes avec le mot "host" dedans, alors que je souhaite juste récupérer le contenu définis à la ligne 4.

Merci d'avance.

Hors ligne

#2 Le 19/01/2016, à 11:24

Watael

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

salut,

tu pourrais faire un troisième fichier, qui contiendrait les variables communes, que tu sourcerais dans chaque script.


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

Hors ligne

#3 Le 19/01/2016, à 11:24

pingouinux

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Bonjour,
Pour récupérer la 4ème ligne

sed -n '4p' script.sh

Pour récupérer le contenu de la variable

sed -n '4s/host=//p' script.sh

Hors ligne

#4 Le 19/01/2016, à 11:41

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

pingouinux a écrit :

Bonjour,
Pour récupérer la 4ème ligne

sed -n '4p' script.sh

Pour récupérer le contenu de la variable

sed -n '4s/host=//p' script.sh

Ok super sa marche nickel !

Merci à tous pour vos réponses rapides.
En vous souhaitant une bonne journée.

Cordialement.

Hors ligne

#5 Le 26/01/2016, à 11:23

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Bonjour, je remonte ce sujet pour éviter d'en ouvrir un autre.

A la suite de la commande que pingouinux m'a donné :

pingouinux a écrit :
sed -n '4s/host=//p' script.sh

Le contenu de la variable est récupéré, mais lorsque celle-ci est entre guillemets/quotes, le contenus sous forme "contenus" est récupérer, avec donc les guillemets/quotes.
.
Est-ce qu'il y aurais un moyen pour récupérer une variable, mais quand cette fois-ci elle est déclarer entre guillemets/quote, la récupérer sans les guillemets/quotes ? Récup' sa valeur directement, sans avoir les "." ou '.' avec.

Amicalement.

Hors ligne

#6 Le 26/01/2016, à 11:31

Watael

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

as-tu déjà entendu parlé de la commande bash source, et son équivalent POSIX . ?

Dernière modification par Watael (Le 26/01/2016, à 11:32)


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

Hors ligne

#7 Le 26/01/2016, à 11:37

pingouinux

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

sed -rn "4s/host=['\"]?([^'\"]*)['\"]?$/\1/p" script.sh

Hors ligne

#8 Le 26/01/2016, à 11:41

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Watael a écrit :

as-tu déjà entendu parlé de la commande bash source, et son équivalent POSIX . ?

Non, jamais entendu parler ! Certainement par la suite wink

pingouinux a écrit :
sed -rn "4s/host=['\"]?([^'\"]*)['\"]?$/\1/p" script.sh

Alors la...super. Rapide, efficace, merci beaucoup pingouinux...

Bonne journée à vous.

Hors ligne

#9 Le 26/01/2016, à 11:50

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

D'ailleurs dernière petite question au passage (désolé du DP) :

Pour un fichier bash c'est bon, mais pour un fichier .php non. Que faut-il changer ? Il retourne une ligne vide.

Hors ligne

#10 Le 26/01/2016, à 11:55

pingouinux

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Il faudrait voir précisément ce que contient ce fichier.

Hors ligne

#11 Le 26/01/2016, à 11:57

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Après vérification c'est le ; à la fin de la déclaration de la variable en PHP qui gêne. Sur un .sh le point virgule n'est pas obligatoire contrairement en PHP....

Il faudrais, je pense, éliminer le ; tout comme sa a été fait avec les quotes lors de l'affichage du résultat...

EDIT :

Son contenu

<?php
#définition des variables
$DBUSER='MonUser';
...
?>

Dernière modification par supras85 (Le 26/01/2016, à 12:06)

Hors ligne

#12 Le 26/01/2016, à 12:04

Watael

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Je reste sur ma position, considérant ma proposition au message #2, plus appropriée, que ce soit avec source (ou .) en shell, ou "include" en php

Dernière modification par Watael (Le 26/01/2016, à 12:04)


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

Hors ligne

#13 Le 26/01/2016, à 12:04

pingouinux

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

sed -rn "4s/host=['\"]?([^'\";]*)['\"]?;?$/\1/p" fichier

Hors ligne

#14 Le 26/01/2016, à 12:15

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

pingouinux a écrit :
sed -rn "4s/host=['\"]?([^'\";]*)['\"]?;?$/\1/p" fichier

Il semblerais que cela ne marche pour PHP. J'ai toujours une ligne vide lors de l'affichage.

J'ai éditer un peu plus haut et donner un exemple de la variable que je voulais récupérer dans un .php


supras85 a écrit :

Son contenu

<?php
#définition des variables
$DBUSER='MonUser';
...
?>

Hors ligne

#15 Le 26/01/2016, à 12:28

pingouinux

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Il faut que tu donnes un minimum d'information…

sed -rn "s/.*\<DBUSER=['\"]?([^'\";]*).*/\1/p" fichier

Hors ligne

#16 Le 26/01/2016, à 20:01

supras85

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

Ok super merci encore...

Hors ligne

#17 Le 29/01/2016, à 20:09

HP

Re : Shell Linux - Récupération d'une variable situé dans un autres fichier

<?php
$DBUSER='MonUser';
$DBPASS='#&@abc456';

if (basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'])) {
    call_user_func_array(function($vars) {
        foreach(['DBUSER', 'DBPASS'] as $k) {
            printf('export %s=%s%s', $k, $vars[$k], PHP_EOL);
        }
    }, [get_defined_vars()]);
}
# php config.php
export DBUSER=MonUser
export DBPASS=#&@abc456

Dernière modification par HP (Le 29/01/2016, à 20:14)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne