Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 29-02-2020 19:46:25

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.11.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

[Résolu] shellcheck (SC2034)

Bonsoir,

je suis en train de vérifier mon script avec shellcheck.

à la ligne 33, je vois qu'il y a un problème que j'aimerais illiminer mais comme je n'y comprend pas grand chose, je peine à la corriger. Je vois à peu près ce qui ce passe mais pas plus. On dirait, dans mon langage, que "MOUNT_POINT" n'est pas utilisé dans le script. Si ça veut vraiment dire ça.
En tout cas, ça ne pause aucun problême sur le bon fonctionnement du script.

l'erreur :


In LE_SCRIPT line 33:
MOUNT_POINT=${MOUNT_POINTS[0]}
^---------^ SC2034: MOUNT_POINT appears unused. Verify use (or export if used externally).

For more information:
  https://www.shellcheck.net/wiki/SC2034 -- MOUNT_POINT appears unused. Verif...
 



la partie du script :



#!/bin/bash

PATH=$PATH:/sbin:/usr/sbin

## CONDITION : UN SEUL DVD-VIDÉO.
mapfile -t  BLKID < <(blkid /dev/sr* |sed -E 's/^([^:]+): .*/\1/')

if [[ "${#BLKID[@]}" -eq  "0" ]] ; then
    echo "Aucun DVD trouvé: abandon"
    exit 0
fi

idx=0
for dev in "${BLKID[@]}"; do
    mnt=$(mount |sed -n -E "s/^${dev//\//\\\/} on (.*) type .*\$/\\1/p")
    [[ -z "$mnt" ]] && continue
    if [[ -f "$mnt/VIDEO_TS/VIDEO_TS.IFO" ]]; then
        DEVICES[$idx]="$dev"
        MOUNT_POINTS[$idx]="$mnt"
        idx=$((idx+1))
    fi
done

if [[ "${#DEVICES[@]}" -eq 0 ]]; then
    echo "Aucun dvd vidéo monté : Abandon"
    exit 0
elif [[ "${#DEVICES[@]}" -gt 1 ]];  then
    echo "Il y a plus d'un dvd video détecté : Abandon"
    exit 0
fi

DEVICE=${DEVICES[0]}
MOUNT_POINT=${MOUNT_POINTS[0]}

## LABEL DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI.
idx=0
TITLE_COUNT=0
regexp='^Title: '
while read -r line; do
    idx=$((idx+1))
    if [[ "$idx" -eq 1 ]]; then
        TITLE=${line#*: }
    elif [[ "$line" =~ $regexp ]]; then
        TITLE_COUNT=$((TITLE_COUNT+1))
    fi
done < <(lsdvd "$DEVICE" 2>/dev/null)

unset regexp dev mnt idx BLKID DEVICES MOUNT_POINTS

if [[ -z "$TITLE" ]]; then
    echo "Pas de dvd vidéo trouvé : abandon"
    exit 0
fi

echo "Proceed..."





echo "DVD-Vidéo : $TITLE"
read -r -p "Ce nom convient-il ? [Y/n] " input
 
case $input in
    [yY][eE][sS]|[yY])
 echo "Yes"

 mkdir -p "$TITLE/IFOS"
 ;;
    [nN][oO]|[nN])
 echo "No"
 read -r -p "Entrer un nouveau nom: " TITLE
 
 mkdir -p "$TITLE/IFOS"
       ;;
    *)
 echo "Invalid input..."
 echo "Quit"
 exit 1
 ;;
esac
 




Merci pour l'aide. smile

Dernière modification par golgot200 (01-03-2020 08:42:23)

Hors ligne

#2 29-02-2020 20:09:51

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.11.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] shellcheck (SC2034)

Je pense avoir compris .... et peut-être trouvé.
J'ai un peu saccagé le travail d'enicar hmm

Hors ligne

#3 29-02-2020 23:21:22

Cauryl
Invité

Re : [Résolu] shellcheck (SC2034)

Salut !

MOUNT_POINT appears unused

MOUNT_POINT semble inutilisé



Tu as déclaré la variable mais tu ne l'as pas utilisée.

Les erreurs sont par ailleurs toutes expliquées dans le wiki dédié : https://github.com/koalaman/shellcheck/wiki/SC2034 wink

#4 01-03-2020 08:40:31

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 5.11.12-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : [Résolu] shellcheck (SC2034)

Bonjour Cauryl

exact.

J'ai allégé le script. maintenant c'est bon smile


#!/bin/bash

## golgot200
## Testeur smolski
## 18/02/2020



PATH=$PATH:/sbin:/usr/sbin

## CONDITION : UN SEUL DVD-VIDÉO.
COUNT_VIDEO_TS=$(find /run/media -name 'VIDEO_TS' | wc -l)




if [[ "$COUNT_VIDEO_TS" -eq 0 ]]; then
    echo "Aucun dvd vidéo monté : Abandon"
    exit 0
elif [[ "$COUNT_VIDEO_TS" -gt 1 ]];  then
    echo "Il y a plus d'un dvd video détecté : Abandon"
    exit 0
fi


if [[ "$COUNT_VIDEO_TS" -eq 1 ]]; then
echo "Les conditions sont réunies : On continue"
DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g')
TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


fi

echo "Proceed..."





echo "DVD-Vidéo : $TITLE"
read -r -p "Ce nom convient-il ? [Y/n] " input
 
case $input in
    [yY][eE][sS]|[yY])
 echo "Yes"

 mkdir -p "$TITLE/IFOS"
 ;;
    [nN][oO]|[nN])
 echo "No"
 read -r -p "Entrer un nouveau nom: " TITLE
 
 mkdir -p "$TITLE/IFOS"
       ;;
    *)
 echo "Invalid input..."
 echo "Quit"
 exit 1
 ;;
esac
 



Merci wink

Dernière modification par golgot200 (01-03-2020 08:41:41)

Hors ligne

Pied de page des forums