Messages de DesertStrength

Variable globale :

ARGUMENTS=$(echo "${@}")

Code :

https://image.noelshack.com/fichiers/2021/04/3/1611754192-nikemouk.png

Le but est que dès que je détecte un nombre dans l'un des arguments du script, je l'afficche dans le tableau
Donc on devrait avoir
Hell0 W0rld1 avec
Par exemple

./test.sh test Hell0 W0rld1

Je stocke les mots dans un tableau qui comportent au moins un nombre et les affiche
Or ma boucle FOR à un problème, elle ne loope pas correctement et me ressort le tableau des arguments : [ICI J'ai rajouté un echo $arg pour voir si ça loop bien mais non...]

https://image.noelshack.com/fichiers/2021/04/3/1611754667-capture-d-ecran-du-2021-01-27-14-37-40.png

Résultat :

test Hell0 W0rld1

Comment faire les kheys svp ? :-(

Merci

######################################################################
# Variables globales
######################################################################
ARGUMENTS=$(echo "${@}")

######################################################################
# Vérifie si le mot est valide.
#
# Globals:
# ARGUMENTS
# Locals:
# checkNumbersArguments
# searchErrorNumber
# Arguments:
# None
# Return:
# 0 si le mot est bel et bien un mot et si ils ne contient pas
# des nombres, 1 si erreur.
######################################################################
function validityWords() {
local checkNumbersArguments=$(echo "${ARGUMENTS}" | grep '[0-9]')

if ! test "${checkNumbersArguments}"
then
return 0
else
errorNumber
return 1
fi
}

function errorNumber() {
local array=()
for arg in ${ARGUMENTS}
do
if test "${arg}" = *[0-9]*
then
array+=("${arg}")
fi
done
echo "${array[@]}"
}

Merci à tokpela

Le 27 janvier 2021 à 15:42:53 tokpela a écrit :

Le 27 janvier 2021 à 15:40:46 DesertStrength a écrit :

Le 27 janvier 2021 à 15:39:44 tokpela a écrit :
Le script de l'auteur :


######################################################################
# Vérifie si le mot est valide.
#
# Globals:
# ARGUMENTS
# Locals:
# checkNumbersArguments
# searchErrorNumber
# Arguments:
# None
# Return:
# 0 si le mot est bel et bien un mot et si ils ne contient pas
# des nombres, 1 si erreur.
######################################################################
function validityWords() {
local checkNumbersArguments=$(echo "${ARGUMENTS}" | grep '[0-9]')

if ! test "${checkNumbersArguments}"
then
return 0
else
errorNumber
return 1
fi
}

function errorNumber() {
local array=()
for arg in ${ARGUMENTS}
do
if test "${arg}" = *[0-9]*
then
array+=("${arg}")
fi
done
echo "${array[@]}"
}

Merci faut pas oublier la variable globale ARGUMENTS=$(echo "${@}")

Edité !
Et pas de problème :ok:

Merci beaucoup :ok:

Le 27 janvier 2021 à 15:41:16 mynameisflash a écrit :
C'est quoi cette syntaxe if test truc = regex ?

Bah j'utilise la command test pour voir si l'argument a un nombre ou pas :(

Le 27 janvier 2021 à 15:36:57 r10r1010101r0 a écrit :
Bon allez nique ta m_re

Sympa :(

Le 27 janvier 2021 à 15:36:26 r10r1010101r0 a écrit :
Mais copie le ici mdr, c'est un script de 4 lignes

Bah non il fait plus que 4 lignes :(

Le 27 janvier 2021 à 15:30:38 r10r1010101r0 a écrit :
c''est poas comme ça que tu mets tes arguments

Comment faut-il faire ? :(

Le 27 janvier 2021 à 15:30:58 [MaitreJohn] a écrit :
Mais go StackOverflow mec

J'ai déjà go StackOverflow et j'ai posé la question mais on m'a répondu pour un script donné
et pas dans le cas de fonctions :(

FONCTIONNEMENT DU FOR :
${ARGUMENTS} c'est l'ensemble des arguments : test Hello World
arg est censé prendre le premier argument : test
et ensuite tester si il a des nombres
Si oui on l'ajoute dans le tableau et on fait un echo du tableau
Et on refait pour le second argument etc.

Le 27 janvier 2021 à 15:29:14 PatoBulaire a écrit :

Le 27 janvier 2021 à 15:25:49 DesertStrength a écrit :

Le 27 janvier 2021 à 15:23:55 PatoBulaire a écrit :
C'est normal tu a mis des " " dans ta boucle for
De mes souvenirs de bash :(

Ca change rien :

https://image.noelshack.com/fichiers/2021/04/3/1611757540-capture-d-ecran-du-2021-01-27-15-25-25.png

Rien sur la sortie standard :-(

C'est quoi le but de cette boucle j'ai du mal à comprendre :question:

Ba
${ARGUMENTS} c'est l'ensemble des arguments : test Hello World
arg est censé prendre le premier argument : test
et ensuite tester si il a des nombres
Si oui on l'ajoute dans le tableau et on fait un echo du tableau
Et on refait pour le second argument etc.

Le 27 janvier 2021 à 15:27:38 PapyTrico_Pyj a écrit :
T'as déjà entendu parler de IFS ?
Je trouve que ta boucle for est bizarre :(

Euh oausi mais je sais pas comment l'utiliser
Ma boucle for : arg prend le premier argument et ensuite je teste, je prends le second argument etc. jusqu'a qu'il y ait plus d'argument disponibles ;

Le 27 janvier 2021 à 15:23:55 PatoBulaire a écrit :
C'est normal tu a mis des " " dans ta boucle for
De mes souvenirs de bash :(

Ca change rien :

https://image.noelshack.com/fichiers/2021/04/3/1611757540-capture-d-ecran-du-2021-01-27-15-25-25.png

Rien sur la sortie standard :-(

https://image.noelshack.com/fichiers/2017/18/1493851345-rsaaaaaaa.png

Le 27 janvier 2021 à 15:20:12 CrazyBeau a écrit :
Mais lol

Merci du Uphttps://image.noelshack.com/fichiers/2017/15/1492298876-alain-soral-accable.png

https://image.noelshack.com/fichiers/2017/15/1492298876-alain-soral-accable.pngPitié je vous ai tout donnéhttps://image.noelshack.com/fichiers/2017/15/1492298876-alain-soral-accable.png
Y'a surement des kheys qui ont les capacités pour réussirhttps://image.noelshack.com/fichiers/2017/15/1492298876-alain-soral-accable.png
Road to 2 pages :)
up
Des gens qui cherchent la solution pour savoir ? :-(
Uppercut :-(