#26 Le 17/08/2017, à 21:40
- Hizoka
Re : [Résolu mais dangereux] Renvoyer un tableau depuis une commande
A la base le but c'est que cela fonctionne depuis un fichier externe et non depuis une fonction.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#27 Le 23/08/2017, à 18:09
- LeoMajor
Re : [Résolu mais dangereux] Renvoyer un tableau depuis une commande
Je souhaiterai convertir cette fonction en une "vraie" commande.
salut,
il faut que tu l'écrives dans le ~/.bashrc.
mettre à jour
source ~/.bashrc
si tu l'écris ailleurs, il faut mettre à jour (sourcer automatiquement) via probablement des méthodes liées à inotify systemd.path. Dans ce cas, tu surveilles les évènements dans $HOME/.bashobj ( dans l'exemple ci-dessous)
par exemple, à la fin de ~/.bashrc
function OBJ.INIT() {
name=$1
local structure="$HOME/.bashobj/$name"
cat << EOF > "$structure"
#!/bin/bash
function _$name.getname () {
printf "%s\n" "$name"
}
function _$name.set.fromfile () {
local c
sourcefile=\$1
unset arr
declare -Ag arr
while read line; do ((c++)); arr[\$c]="\$line"; done < <(cat "\$sourcefile")
strings "\$sourcefile" > "$HOME/.bashobj/$name.src"
count=\$c
}
function _$name.count () {
printf "%d\n" "\$count"
}
function _$name.getarray () {
local index=\$1
printf "%s\n" "\${arr[\$index]}"
}
function _$name.gerarray.serial() {
echo -e "\${arr[@]}\n"
}
function _$name.getsourcefile () {
printf "%s\n" "\$sourcefile"
}
EOF
}
function OBJ.DELETE () {
local obj=$1
rm "$HOME/.bashobj/$obj"* && printf "%d\n" 1 || printf "%d\n" 0
bash
}
function OBJ.UPDATE () {
local obj=$1
source "$HOME/.bashobj/$obj" && printf "%d\n" 1 || printf "%d\n" 0
}
export -f OBJ.UPDATE
export -f OBJ.DELETE
export -f OBJ.INIT
toto@s:~$ OBJ.INIT cafe
toto@s:~$ OBJ.UPDATE cafe
1
toto@s:~$ _cafe. # touche tab auto-complétion
_cafe.count _cafe.getarray _cafe.getsourcefile
_cafe.gerarray.serial _cafe.getname _cafe.set.fromfile
toto@s:~$ _cafe.set.fromfile dkms.txt
toto@s:~$ _cafe.getname
cafe
toto@s:~$ _cafe.getarray 26
nvidia-375, 375.66, 4.4.0-78-generic, x86_64: installed
toto@s:~$ _cafe.count
48
etc ...
Hors ligne
#28 Le 23/08/2017, à 21:01
- Hizoka
Re : [Résolu mais dangereux] Renvoyer un tableau depuis une commande
bah c'est toujours des fonctions et non une commande qu'on appel comme grep ou sed ou je ne sais quelle autre.
De toute façon ce n'est pas possible, il faut renvoyer les valeurs et c'est à l'utilisateur de savoir les lire.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#29 Le 23/08/2017, à 21:16
- Watael
Re : [Résolu mais dangereux] Renvoyer un tableau depuis une commande
une fonction est appelée de la même manière qu'une commande dont le chemin est dans le PATH : par son nom,
et peut accepter des arguments.
quel comportement attends-tu d'une commande qu'une fonction n'offrirait pas ?
Dernière modification par Watael (Le 23/08/2017, à 21:17)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#30 Le 23/08/2017, à 22:03
- Hizoka
Re : [Résolu mais dangereux] Renvoyer un tableau depuis une commande
Bah tout simplement de pouvoir la partager simplement, de pouvoir l'installer via un deb sans modifier le fichier bashrc de l'utilisateur...
Je ne souhaite pas que l'utilisateur ait besoin de sourcer un fichier pour l'utiliser, ça c'est ce que je peux faire pour moi.
Dans tous les cas, je me suis débrouillé autrement, je fais appel à mon script et retraite les données renvoyées.
Mais merci à tous
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne