#201 Le 16/04/2025, à 10:43
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
( je m' emmele les pinceaux a editer sur mon ordi , sur le github et sur le fofo
)
Attention, PartNum a à nouveau disparu (ligne 52) !
Il y a aussi des echo -e qui traînent encore (lignes 96, 100 et 104).
Dernière modification par nany (Le 16/04/2025, à 11:22)
Hors ligne
#202 Le 16/04/2025, à 18:36
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Heureusement que tu es là pour surveiller ce que je fais
j ' ai rectifié pour PartNum ( 52 ) , pas compris pourquoi il n' y est encore plus ...
j ' ai viré les -e lignes 96 et 100 , par contre pour la ligne 104 , j' ai un doute vu que $Part ca sera forcément : " /dev/quelquechose " non ?
#!/bin/bash
# ----------------------------------------------------------------------------
# "LICENCE BEERWARE" (Révision 42):
# <iznobe@forum.ubuntu-fr.org> a créé ce fichier. Tant que vous conservez cet avertissement,
# vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# retour.
# ----------------------------------------------------------------------------
label() {
local rgx="[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]"
while [ -z "$Label" ]; do
read -rp "Choisissez l’étiquette (LABEL) de votre partition de données, elle doit être UNIQUE et ne pas contenir d’espace, d’accent, de caractères spéciaux et au maximum 16 caractères : " Label
if [[ "$Label" =~ $rgx || "${#Label}" -gt 16 ]]; then
echo "Le nom de votre étiquette comporte une espace, un accent ou un caractère spécial ou plus de 16 caractères !"
unset Label
fi
done
for (( n=0; n<"$nbDev"; n++ )); do
if [[ $Label == "${ListPart[$n,1]}" ]]; then
echo "Erreur, votre étiquette « $Label » est déjà attribuée !"
exit 4
fi
done
}
if ((UID)); then
echo "Vous devez être super utilisateur pour lancer ce script (essayez avec « sudo »)"
exit 0
fi
$(lsblk -no path,label,fstype |
awk -vi=-1 'BEGIN { print "declare -A ListPart" } \
$NF ~ "ext|ntfs" \
{
j=0 ;
if ($2 ~ /^ext[2-4]$/ || $2 ~ /^ntfs$/)
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]=""\nListPart["i","++j"]="$2 }
else
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]="$2"\nListPart["i","++j"]="$3 }
}')
nbDev=$(( "${#ListPart[@]}"/3 ))
for (( n=0; n<nbDev; n++ )); do
echo "$(( n+1 )) ⇒ ${ListPart[$n,0]} ${ListPart[$n,1]} ${ListPart[$n,2]}"
done
while [ -z "$PartNum" ]; do
read -rp "Choisissez le numéro correspondant à votre future partition de données : " PartNum
if [[ ! "$PartNum" =~ ^[1-9][0-9]*$ ]] || ! (( PartNum > 0 && PartNum <= nbDev )); then
echo "Votre choix doit être un nombre entier compris entre 1 et $nbDev."
unset PartNum
fi
done
Part="${ListPart[$(( PartNum-1 )),0]}"
PartLabel="${ListPart[$(( PartNum-1 )),1]}"
PartFstype="${ListPart[$(( PartNum-1 )),2]}"
if [[ -z "$PartLabel" ]]; then
echo "La partition « $Part » n’a pas d’étiquette."
label
else
echo "La partition « $Part » a l’étiquette « $PartLabel »."
while [ -z "$Rep" ]; do
read -rp "Voulez-vous changer l’étiquette de la partition « $Part » ? [O/n] " Rep
case "$Rep" in
N|n)
Label="$PartLabel"
break
;;
Y|y|O|o|"")
label
break
;;
*)
unset Rep
;;
esac
done
fi
while [ -z "$Rep2" ]; do
read -rp "Voulez-vous procéder au montage maintenant pour la partition « $Part » en y mettant pour étiquette « $Label » ? [O/n] " Rep2
case "$Rep2" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
if grep -q "$Label" /etc/fstab; then
echo "L’étiquette « $Label » est déjà utilisée dans le fstab !"
exit 2
fi
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
echo "L’UUID de la partition est déjà présent dans le fstab !"
exit 3
fi
if grep -q "^$Part" /etc/mtab; then
echo -e "La partition « $Part » est déjà montée !"
while [ -z "$rep3" ]; do
read -rp "Voulez-vous démonter la partition « $Part » de son emplacement actuel et procéder au changement pour étiquette « $Label » ? [O/n] " Rep3
case "$Rep3" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in $PartMountPoints; do
umount -v "$pmp"
Num="$(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rV)"
for n in $Num; do
sed -i "${n}d" /etc/fstab
done
done
break
;;
*)
unset Rep3
;;
esac
done
fi
# construction des éléments :
if [[ "$PartFstype" =~ ext[2-4] ]]; then
e2label "$Part" "$Label"
echo "LABEL=$Label /media/$Label $PartFstype defaults" >> /etc/fstab
elif [[ "$PartFstype" == "ntfs" ]]; then
ntfslabel "$Part" "$Label"
echo "LABEL=$Label /media/$Label ntfs3 defaults,nofail,x-gvfs-show,nohidden,uid=$SUDO_UID,gid=$SUDO_GID" >> /etc/fstab
fi
mkdir /media/"$Label" 2>/dev/null
systemctl daemon-reload
mount -a 2>/dev/null
mkdir /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
mkdir /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chmod 700 /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
if [ -e /media/"$Label"/.Trash-"$SUDO_UID" ]; then
echo "-----------------------------------------------------------------"
echo "Script pour montage de partition de données terminé avec succès !"
echo ""
echo "Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/$Label/$SUDO_USER-$Label »."
else
echo "erreur inconnue !"
exit 10
fi
break
;;
*)
unset Rep2
;;
esac
done
Dernière modification par iznobe (Le 16/04/2025, à 18:37)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#203 Le 16/04/2025, à 18:55
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Bon , quelquechose ne va pas dans le cas où la partition est déjà montée ...
Dernière modification par iznobe (Le 16/04/2025, à 19:40)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#204 Le 16/04/2025, à 19:31
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
par contre pour la ligne 104 , j' ai un doute vu que $Part ca sera forcément : " /dev/quelquechose " non ?
Et alors ? Il est où le backslash ?
Bon , quelquechose ne va pas dans le cas où la partition est déjà montée ...
Qu’est-ce qui ne va pas ? Je n’ai pas de moyen de tester.
Hors ligne
#205 Le 16/04/2025, à 19:39
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Bon en fait , c' est gnome et / ou le dash qui ne suivent pas et ca n' affiche pas la partition montée dans le dash ...
j ' ai mis un " sleep " ( pas confondre avec son homonyme français ) et j' ai remis les doubles quotes à : enlevé de nouveau
for pmp in $PartMountPoints; do
et j' ai enlever aussi le -e de la ligne 104 , pas de soucis , oublier de le dire .
ce qui donne :
#!/bin/bash
# ----------------------------------------------------------------------------
# "LICENCE BEERWARE" (Révision 42):
# <iznobe@forum.ubuntu-fr.org> a créé ce fichier. Tant que vous conservez cet avertissement,
# vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# retour.
# ----------------------------------------------------------------------------
label() {
local rgx="[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]"
while [ -z "$Label" ]; do
read -rp "Choisissez l’étiquette (LABEL) de votre partition de données, elle doit être UNIQUE et ne pas contenir d’espace, d’accent, de caractères spéciaux et au maximum 16 caractères : " Label
if [[ "$Label" =~ $rgx || "${#Label}" -gt 16 ]]; then
echo "Le nom de votre étiquette comporte une espace, un accent ou un caractère spécial ou plus de 16 caractères !"
unset Label
fi
done
for (( n=0; n<"$nbDev"; n++ )); do
if [[ $Label == "${ListPart[$n,1]}" ]]; then
echo "Erreur, votre étiquette « $Label » est déjà attribuée !"
exit 4
fi
done
}
if ((UID)); then
echo "Vous devez être super utilisateur pour lancer ce script (essayez avec « sudo »)"
exit 0
fi
$(lsblk -no path,label,fstype |
awk -vi=-1 'BEGIN { print "declare -A ListPart" } \
$NF ~ "ext|ntfs" \
{
j=0 ;
if ($2 ~ /^ext[2-4]$/ || $2 ~ /^ntfs$/)
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]=""\nListPart["i","++j"]="$2 }
else
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]="$2"\nListPart["i","++j"]="$3 }
}')
nbDev=$(( "${#ListPart[@]}"/3 ))
for (( n=0; n<nbDev; n++ )); do
echo "$(( n+1 )) ⇒ ${ListPart[$n,0]} ${ListPart[$n,1]} ${ListPart[$n,2]}"
done
while [ -z "$PartNum" ]; do
read -rp "Choisissez le numéro correspondant à votre future partition de données : " PartNum
if [[ ! "$PartNum" =~ ^[1-9][0-9]*$ ]] || ! (( PartNum > 0 && PartNum <= nbDev )); then
echo "Votre choix doit être un nombre entier compris entre 1 et $nbDev."
unset PartNum
fi
done
Part="${ListPart[$(( PartNum-1 )),0]}"
PartLabel="${ListPart[$(( PartNum-1 )),1]}"
PartFstype="${ListPart[$(( PartNum-1 )),2]}"
if [[ -z "$PartLabel" ]]; then
echo "La partition « $Part » n’a pas d’étiquette."
label
else
echo "La partition « $Part » a l’étiquette « $PartLabel »."
while [ -z "$Rep" ]; do
read -rp "Voulez-vous changer l’étiquette de la partition « $Part » ? [O/n] " Rep
case "$Rep" in
N|n)
Label="$PartLabel"
break
;;
Y|y|O|o|"")
label
break
;;
*)
unset Rep
;;
esac
done
fi
while [ -z "$Rep2" ]; do
read -rp "Voulez-vous procéder au montage maintenant pour la partition « $Part » en y mettant pour étiquette « $Label » ? [O/n] " Rep2
case "$Rep2" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
if grep -q "$Label" /etc/fstab; then
echo "L’étiquette « $Label » est déjà utilisée dans le fstab !"
exit 2
fi
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
echo "L’UUID de la partition est déjà présent dans le fstab !"
exit 3
fi
if grep -q "^$Part" /etc/mtab; then
echo "La partition « $Part » est déjà montée !"
while [ -z "$rep3" ]; do
read -rp "Voulez-vous démonter la partition « $Part » de son emplacement actuel et procéder au changement pour étiquette « $Label » ? [O/n] " Rep3
case "$Rep3" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in $PartMountPoints; do
umount -v "$pmp"
Num="$(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rV)"
for n in $Num; do
sed -i "${n}d" /etc/fstab
done
done
sleep 1 # prise en compte du montage par le dash , sans delai , parfois la partition ne s' affiche pas .
break
;;
*)
unset Rep3
;;
esac
done
fi
# construction des éléments :
if [[ "$PartFstype" =~ ext[2-4] ]]; then
e2label "$Part" "$Label"
echo "LABEL=$Label /media/$Label $PartFstype defaults" >> /etc/fstab
elif [[ "$PartFstype" == "ntfs" ]]; then
ntfslabel "$Part" "$Label"
echo "LABEL=$Label /media/$Label ntfs3 defaults,nofail,x-gvfs-show,nohidden,uid=$SUDO_UID,gid=$SUDO_GID" >> /etc/fstab
fi
mkdir /media/"$Label" 2>/dev/null
systemctl daemon-reload
mount -a 2>/dev/null
mkdir /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
mkdir /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chmod 700 /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
if [ -e /media/"$Label"/.Trash-"$SUDO_UID" ]; then
echo "-----------------------------------------------------------------"
echo "Script pour montage de partition de données terminé avec succès !"
echo ""
echo "Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/$Label/$SUDO_USER-$Label »."
else
echo "erreur inconnue !"
exit 10
fi
break
;;
*)
unset Rep2
;;
esac
done
Dernière modification par iznobe (Le 16/04/2025, à 20:15)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#206 Le 16/04/2025, à 19:46
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
et j' ai remis les doubles quotes
Je mets ma main au feu que ça ne fonctionnera pas pour le cas de points de montage multiples.
Dernière modification par nany (Le 16/04/2025, à 19:49)
Hors ligne
#207 Le 16/04/2025, à 20:05
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
je teste ça desuite alors .
exact ... je re édite .
Dernière modification par iznobe (Le 16/04/2025, à 20:15)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#208 Le 16/04/2025, à 20:58
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
PartMountPoints=( $(grep "$Part" /etc/mtab | cut -d ' ' -f 2) ) # ou readarray -t PartMountPoints < <(grep...)
for pmp in "${PartMountPoints[@]}"; do
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#209 Le 16/04/2025, à 23:46
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Salut @Watael , cela cree un tableau associatif ?
ce qui evite de boucler dans boucle ?
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#210 Le 17/04/2025, à 00:24
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
non, c'est un tableau indexé.
et, non, puisque les deux boucles ne traitent pas les mêmes informations.
d'ailleurs :
readarray -t PartMountPoints < <(grep "$Part" /etc/mtab | cut -d " " -f 2)
for pmp in "${PartMountPoints[@]}"; do
umount -v "$pmp"
for numLine in $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rn) #on est sûr que la sortie ne peut être que des nombres.
do
sed -i ${numLine}d /etc/fstab
done
done
pourquoi sort -rV ? il n'y a pas de version ici, seulement des nombres -> sort -rn
Dernière modification par Watael (Le 17/04/2025, à 00:27)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#211 Le 17/04/2025, à 00:35
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
pourquoi sort -rV ?
si ton fichier contient 4 lignes et que tu veux supprimer la ligne 1 puis la 4 et que tu commences par la 1 , que se passe t il ?
-r si j' ai bien suivi , c' est pour ordre inversé .
-V , c' est nany qui avait dit de l' ajouté aussi . je me rapelle plus trop pourquoi ...
Si tu supprimes la 4 , puis la 1 pas de soucis par contre .
Dernière modification par iznobe (Le 17/04/2025, à 00:39)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#212 Le 17/04/2025, à 00:43
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Attention, j’ai édité à 20:38:25, il faut mettre sort -rV.
Petites explications : on supprime ligne par ligne car on ne sait pas si les lignes vont être contiguës donc il faut trier par ordre décroissant des numéros (d’où l’importance du V) pout pouvoir supprimer de la dernière à la première ligne sinon il y aurait méprise dans les numéros des lignes.
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#213 Le 17/04/2025, à 00:44
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
je n'ai rien contre le -r, c'est normal du supprimer ls lignes dans l'ordre inverse.
-V, --version-sort natural sort of (version) numbers within text
par exemple 1.1.4, 1.1.2 sont des numéros de version qui seront efficacement triés avec -V.
-n et -g effectuent tous les deux un tri numérique, mais je ne perçois pas la différence.
Dernière modification par Watael (Le 17/04/2025, à 00:44)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#214 Le 17/04/2025, à 00:56
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
mais, on peut s'en passer :
numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1) )
sed -i "$(printf '%dd;' "${numLines[@]}")" /etc/fstab
voire simplement :
sed -i '/'"$pmp"'/d' /etc/fstab
ou j'ai raté quelque chose ?
Dernière modification par Watael (Le 17/04/2025, à 01:00)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#215 Le 17/04/2025, à 01:15
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
un nombre , c' est forcément un numéro de version .
j ' ai fait plusieurs fois des tests dont un encore tout à l ' heure avec 3 lignes dans le fstab concernant la meme partition .
ca a bien supprimé les 3 lignes en tout cas . mais je n' ai pas fait attention dans quel ordre ...
Aller je refais un test pour la peine
je met le montage de la partition dans le fstab à la main :
iznobe@iznobe-pc:~$ head -16 /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p8 during installation
UUID=dca54497-1ab2-4c12-bc82-53b817300288 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p3 during installation
UUID=C071-9050 /boot/efi vfat umask=0077 0 1
# swap was on /dev/sdc4 during installation
UUID=09e6bc69-3287-4694-aa3b-a72afae17c1f none swap sw 0 0
/dev/disk/by-label/tuiy /mnt ext4 defaults
iznobe@iznobe-pc:~$
en ligne 15 donc .
je l' ai aussi monté avant via le script . elle y est donc 2 fois , dans la toute derniere ligne du fstab .
resultat :
iznobe@iznobe-pc:~$ sudo su -c "bash <(wget -qO- https://raw.githubusercontent.com/iznobe/automount_part_data/refs/heads/main/automount_part_data.sh)"
1 ⇒ /dev/sda1 WD8 ext4
2 ⇒ /dev/sda2 SAUV ext4
3 ⇒ /dev/sdb3 Data ext4
4 ⇒ /dev/sdc1 WD8PRO1_P1 ext4
5 ⇒ /dev/sdc2 WD8PRO1_P2 ext4
6 ⇒ /dev/sdd1 WD8PRO2 ext4
7 ⇒ /dev/nvme0n1p1 windows_10 ntfs
8 ⇒ /dev/nvme0n1p2 ntfs
9 ⇒ /dev/nvme0n1p4 ntfs
10 ⇒ /dev/nvme0n1p5 LM_21_SSD ext4
11 ⇒ /dev/nvme0n1p6 U_20.04_SSD ext4
12 ⇒ /dev/nvme0n1p7 U_22.budgie_SSD ext4
13 ⇒ /dev/nvme0n1p8 U_24.04_SSD ext4
14 ⇒ /dev/nvme0n1p9 LM_SSD_NEW ext4
15 ⇒ /dev/nvme0n1p10 DEBIAN_XFCE ext4
16 ⇒ /dev/nvme0n1p11 Archlinux ext4
17 ⇒ /dev/nvme0n1p12 tuiy ext4
Choisissez le numéro correspondant à votre future partition de données : 17
La partition « /dev/nvme0n1p12 » a l’étiquette « tuiy ».
Voulez-vous changer l’étiquette de la partition « /dev/nvme0n1p12 » ? [O/n]
Choisissez l’étiquette (LABEL) de votre partition de données, elle doit être UNIQUE et ne pas contenir d’espace, d’accent, de caractères spéciaux et au maximum 16 caractères : loki
Voulez-vous procéder au montage maintenant pour la partition « /dev/nvme0n1p12 » en y mettant pour étiquette « loki » ? [O/n]
La partition « /dev/nvme0n1p12 » est déjà montée !
Voulez-vous démonter la partition « /dev/nvme0n1p12 » de son emplacement actuel et procéder au changement pour étiquette « loki » ? [O/n]
umount: /media/tuiy démonté
umount: /mnt démonté
-----------------------------------------------------------------
Script pour montage de partition de données terminé avec succès !
Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/loki/iznobe-loki ».
iznobe@iznobe-pc:~$
il supprime la derniere ligne en premier , et la ligne 15 en dernier , c' est donc ok .
PS , il y a un soucis avec le test de l ' etiquette , faut que je le reprenne .
d' autre part , je me demande ( ca va encore complexifier ... ) , sil ne serait pas judicieux de demander ce qu ' il veut faire à l' utilisateur aussi dans le cas ou une etiquette ou un UUID es deja dans le fstab :
case "$Rep2" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
if grep -q "LABEL=$Label" /etc/fstab; then # verifier aussi avec disk/by/label ...
echo "L’étiquette « $Label » est déjà utilisée dans le fstab !"
exit 2
fi
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
echo "L’UUID de la partition est déjà présent dans le fstab !"
exit 3
fi
if grep -q "^$Part" /etc/mtab; then
echo "La partition « $Part » est déjà montée !"
while [ -z "$rep3" ]; do
read -rp "Voulez-vous démonter la partition « $Part » de son emplacement actuel et procéder au changement pour étiquette « $Label » ? [O/n] " Rep3
case "$Rep3" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in $PartMountPoints; do
umount -v "$pmp"
Num="$(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rV)"
for n in $Num; do
sed -i "${n}d" /etc/fstab
done
done
sleep 1 # prise en compte du montage par le dash , sans delai , parfois la partition ne s' affiche pas .
break
;;
*)
unset Rep3
;;
esac
done
fi
# construction des éléments :
if [[ "$PartFstype" =~ ext[2-4] ]]; then
e2label "$Part" "$Label"
echo "LABEL=$Label /media/$Label $PartFstype defaults" >> /etc/fstab
elif [[ "$PartFstype" == "ntfs" ]]; then
ntfslabel "$Part" "$Label"
echo "LABEL=$Label /media/$Label ntfs3 defaults,nofail,x-gvfs-show,nohidden,uid=$SUDO_UID,gid=$SUDO_GID" >> /etc/fstab
fi
mkdir /media/"$Label" 2>/dev/null
systemctl daemon-reload
mount -a 2>/dev/null
mkdir /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
mkdir /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chmod 700 /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
if [ -e /media/"$Label"/.Trash-"$SUDO_UID" ]; then
echo "-----------------------------------------------------------------"
echo "Script pour montage de partition de données terminé avec succès !"
echo ""
echo "Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/$Label/$SUDO_USER-$Label »."
else
echo "erreur inconnue !"
exit 10
fi
break
;;
*)
unset Rep2
;;
esac
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#216 Le 17/04/2025, à 01:32
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
mais, on peut s'en passer :
numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1) ) sed -i "$(printf '%dd;' "${numLines[@]}")" /etc/fstab
voire simplement :
sed -i '/'"$pmp"'/d' /etc/fstab
ou j'ai raté quelque chose ?
je ne suis pas arrivé a faire passer la variable dans sed pour le faire en direct . et à priori @nany non plus .
Du coup on s' est rabattu sur les numéros .
le problème étant que $pmp contient des " / " , si j' ai bien suivi .
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#217 Le 17/04/2025, à 01:38
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
un nombre , c' est forcément un numéro de version.
mouais.
Généralement, un numéro de version est composé d'une suite de nombres séparés par des points
c'est là que -V est pertinent.
Dernière modification par Watael (Le 17/04/2025, à 01:38)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#218 Le 17/04/2025, à 01:40
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
le problème étant que $pmp contient des " / " , si j' ai bien suivi .
ok, no problemo.
hop hop hop :
sed -i '\@'"$pmp"'@d' /etc/fstab
barbatruc !
Dernière modification par Watael (Le 17/04/2025, à 02:09)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#219 Le 17/04/2025, à 08:50
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
Bonjour,
pourquoi sort -rV ?
Parce que je n’ai pas pris la peine de consulter le manuel de sort et que je ne me souvenais que de V.
Mea culpa, mea maxima culpa.
hop hop hop :
sed -i '\@'"$pmp"'@d' /etc/fstab
barbatruc !
Peut-on être absolument certain que la variable ne contiendra pas d’arobase ?
iznobe a écrit :je me demande si ca n' a pas un rapport avec le fait que la variable contient des " / " justement ...
Ah oui, c’est très certainement à cause de ça.
Dans ce cas :sed -i "\#$PartMountPoint#d" /etc/fstab
Source.
Bien sûr, $PartMountPoint ne doit pas contenir de croisillon.
Bref, comme on ne connaît pas à l’avance ce que va contenir la variable (à part au moins un slash), ta solution est peut-être meilleure.
Sinon, un tableau, c’est mieux. Merci Watael.
Hors ligne
#220 Le 17/04/2025, à 10:28
- Watael
Re : [ SCRIPT ] pour montage automatique partitions internes
Peut-on être absolument certain que la variable ne contiendra pas d’arobase ?
en effet, non.
j'ai fait un amalgame avec LABEL, pour qui on a vérifié que le nom ne comporte que des caractères alphanumériques.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#221 Le 17/04/2025, à 17:19
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
Bonjour a vous , du coup si je résume , il vaut mieux conserver les numéros de ligne en enlevant le " -V " , et passer par un tableau ... ?
ce qui donnerait :
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in $PartMountPoints; do
umount -v "$pmp"
numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -r) )
for n in $numLines; do
sed -i "${n}d" /etc/fstab
done
done
???
c ' est pas pour demain que je maîtriserai les tableaux
Sinon , autre chose , pour la verification de l ' etiuette deja en cours d ' utilisation , il faut que je modifie le grep :
grep sur LABEL=$Label et by-label/$Label
car parfois , ca part en k-k-wete avec :
if grep -q "$Label" /etc/fstab; then # verifier aussi avec disk/by/label ...
exemple :
iznobe@iznobe-pc:~$ Label="to"; grep "$Label" /etc/fstab; # verifier aussi avec disk/by/label ...
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
LABEL=Seagate_4T /media/Seagate_4T ext4 defaults,noauto 0 0
# montage mergerfs , voir : https://forum.ubuntu-fr.org/viewtopic.php?id=2075424
# https://github.com/trapexit/mergerfs https://zackreed.me/mergerfs-another-good-option-to-pool-your-snapraid-disks/
#/dev/disk/by-label/WD8PRO2 /media/WD8PRO2 ext4 defaults,noauto 0 2
#/dev/disk/by-label/Seagate_1T /media/Seagate_1T ext4 defaults,noauto 0 2
#/dev/disk/by-label/Seagate_4T /media/Seagate_4T ext4 defaults,noauto 0 2
#/dev/disk/by-label/Sauvegardes /media/Sauvegardes ext4 defaults,noauto 0 2
iznobe@iznobe-pc:~$
Avec un peu de recherche je re trouverais comment faire un grep sur 2 motifs .
la question , si par exemple un utilisateur voudrais utiliser le script pour , en fait uniquement changer d ' étiquette , comme en parlait @geole précédemment .
comment organiser cela ?
le grep a deux motifs :
grep -E "LABEL=$Label|by-label/$Label" /etc/fstab
ceci à l' air de fonctionner pour la recherche sur 2 motifs , donc , deja je modifie cela dans mon script .
si détection , on pose la question à l' utilisateur ? puis on agit en conséquence ? mais ca me semble relativement risqué non ?
Est ce qu ' il serait inintéressant de faire comme ça , et même d' ajouter un ( des ) rmdir :
#!/bin/bash
# ----------------------------------------------------------------------------
# "LICENCE BEERWARE" (Révision 42):
# <iznobe@forum.ubuntu-fr.org> a créé ce fichier. Tant que vous conservez cet avertissement,
# vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# retour.
# ----------------------------------------------------------------------------
label() {
local rgx="[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]"
while [ -z "$Label" ]; do
read -rp "Choisissez l’étiquette (LABEL) de votre partition de données, elle doit être UNIQUE et ne pas contenir d’espace, d’accent, de caractères spéciaux et au maximum 16 caractères : " Label
if [[ "$Label" =~ $rgx || "${#Label}" -gt 16 ]]; then
echo "Le nom de votre étiquette comporte une espace, un accent ou un caractère spécial ou plus de 16 caractères !"
unset Label
fi
done
for (( n=0; n<"$nbDev"; n++ )); do
if [[ $Label == "${ListPart[$n,1]}" ]]; then
echo "Erreur, votre étiquette « $Label » est déjà attribuée !"
exit 4
fi
done
}
unmount() {
while [ -z "$rep3" ]; do
read -rp "Voulez-vous démonter la partition « $Part » de son emplacement actuel et procéder aux changements pour la monter avec l'étiquette « $Label » ? [O/n] " Rep3
case "$Rep3" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in $PartMountPoints; do
umount -v "$pmp"
Num="$(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rV)"
for n in $Num; do
sed -i "${n}d" /etc/fstab
done
done
sleep 1 # prise en compte du montage par le dash , sans delai , parfois la partition ne s' affiche pas .
unset Rep3
break
;;
*)
unset Rep3
;;
esac
done
}
if ((UID)); then
echo "Vous devez être super utilisateur pour lancer ce script (essayez avec « sudo »)"
exit 0
fi
$(lsblk -no path,label,fstype |
awk -vi=-1 'BEGIN { print "declare -A ListPart" } \
$NF ~ "ext|ntfs" \
{
j=0 ;
if ($2 ~ /^ext[2-4]$/ || $2 ~ /^ntfs$/)
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]=""\nListPart["i","++j"]="$2 }
else
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]="$2"\nListPart["i","++j"]="$3 }
}')
nbDev=$(( "${#ListPart[@]}"/3 ))
for (( n=0; n<nbDev; n++ )); do
echo "$(( n+1 )) ⇒ ${ListPart[$n,0]} ${ListPart[$n,1]} ${ListPart[$n,2]}"
done
while [ -z "$PartNum" ]; do
read -rp "Choisissez le numéro correspondant à votre future partition de données : " PartNum
if [[ ! "$PartNum" =~ ^[1-9][0-9]*$ ]] || ! (( PartNum > 0 && PartNum <= nbDev )); then
echo "Votre choix doit être un nombre entier compris entre 1 et $nbDev."
unset PartNum
fi
done
Part="${ListPart[$(( PartNum-1 )),0]}"
PartLabel="${ListPart[$(( PartNum-1 )),1]}"
PartFstype="${ListPart[$(( PartNum-1 )),2]}"
if [[ -z "$PartLabel" ]]; then
echo "La partition « $Part » n’a pas d’étiquette."
label
else
echo "La partition « $Part » a l’étiquette « $PartLabel »."
while [ -z "$Rep" ]; do
read -rp "Voulez-vous changer l’étiquette de la partition « $Part » ? [O/n] " Rep
case "$Rep" in
N|n)
Label="$PartLabel"
break
;;
Y|y|O|o|"")
label
break
;;
*)
unset Rep
;;
esac
done
fi
while [ -z "$Rep2" ]; do
read -rp "Voulez-vous procéder au montage maintenant pour la partition « $Part » en y mettant pour étiquette « $Label » ? [O/n] " Rep2
case "$Rep2" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
echo "L’UUID de la partition est déjà présent dans le fstab !"
exit 2
elif grep -Eq "LABEL=$Label|by-label/$Label" /etc/fstab; then
echo "L’étiquette « $Label » est déjà utilisée dans le fstab !"
unmount
elif grep -q "^$Part" /etc/mtab; then
echo "La partition « $Part » est déjà montée !"
unmount
fi
# construction des éléments :
if [[ "$PartFstype" =~ ext[2-4] ]]; then
e2label "$Part" "$Label"
echo "LABEL=$Label /media/$Label $PartFstype defaults" >> /etc/fstab
elif [[ "$PartFstype" == "ntfs" ]]; then
ntfslabel "$Part" "$Label"
echo "LABEL=$Label /media/$Label ntfs3 defaults,nofail,x-gvfs-show,nohidden,uid=$SUDO_UID,gid=$SUDO_GID" >> /etc/fstab
fi
mkdir /media/"$Label" 2>/dev/null
systemctl daemon-reload
mount -a 2>/dev/null
mkdir /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
mkdir /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chmod 700 /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
if [ -e /media/"$Label"/.Trash-"$SUDO_UID" ]; then
echo "-----------------------------------------------------------------"
echo "Script pour montage de partition de données terminé avec succès !"
echo ""
echo "Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/$Label/$SUDO_USER-$Label »."
else
echo "erreur inconnue !"
exit 10
fi
break
;;
*)
unset Rep2
;;
esac
done
je n' ai pas encore intégré la modification pour le tableau , vu que ca va probablement encore être modifié ...
Dernière modification par iznobe (Le 17/04/2025, à 18:01)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#222 Le 17/04/2025, à 17:45
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
du coup si je résume , il vaut mieux conserver les numéros de ligne en enlevant le " -V "
Non, il faut remplacer le V par un n.
ce qui donnerait :
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)" for pmp in $PartMountPoints; do umount -v "$pmp" numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -r) ) for n in $numLines; do sed -i "${n}d" /etc/fstab done done
???
Plutôt :
PartMountPoints=( $(grep "$Part" /etc/mtab | cut -d " " -f 2) )
for pmp in "${PartMountPoints[@]}"; do
umount -v "$pmp"
numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rn) )
for n in "${numLines[@]}"; do
sed -i "${n}d" /etc/fstab
done
done
Hors ligne
#223 Le 17/04/2025, à 18:10
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
j ' ai modifié un peu le script et integré le tableau donc .
#!/bin/bash
# ----------------------------------------------------------------------------
# "LICENCE BEERWARE" (Révision 42):
# <iznobe@forum.ubuntu-fr.org> a créé ce fichier. Tant que vous conservez cet avertissement,
# vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# retour.
# ----------------------------------------------------------------------------
label() {
local rgx="[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]"
while [ -z "$Label" ]; do
read -rp "Choisissez l’étiquette (LABEL) de votre partition de données, elle doit être UNIQUE et ne pas contenir d’espace, d’accent, de caractères spéciaux et au maximum 16 caractères : " Label
if [[ "$Label" =~ $rgx || "${#Label}" -gt 16 ]]; then
echo "Le nom de votre étiquette comporte une espace, un accent ou un caractère spécial ou plus de 16 caractères !"
unset Label
fi
done
for (( n=0; n<"$nbDev"; n++ )); do
if [[ $Label == "${ListPart[$n,1]}" ]]; then
echo "Erreur, votre étiquette « $Label » est déjà attribuée !"
exit 4
fi
done
}
unmount() {
while [ -z "$rep3" ]; do
read -rp "Voulez-vous démonter la partition « $Part » de son emplacement actuel et procéder aux changements pour la monter avec l'étiquette « $Label » ? [O/n] " Rep3
case "$Rep3" in
N|n)
echo "Annulation par l’utilisateur !"
exit 1
;;
Y|y|O|o|"")
PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)"
for pmp in "${PartMountPoints[@]}"; do
umount -v "$pmp"
rmdir -v "$pmp"
numLines=( "$(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rn)" )
for n in "${numLines[@]}"; do
sed -i "${n}d" /etc/fstab
done
done
sleep 1 # prise en compte du montage par le dash , sans delai , parfois la partition ne s' affiche pas .
unset Rep3
break
;;
*)
unset Rep3
;;
esac
done
}
if ((UID)); then
echo "Vous devez être super utilisateur pour lancer ce script (essayez avec « sudo »)"
exit 0
fi
$(lsblk -no path,label,fstype |
awk -vi=-1 'BEGIN { print "declare -A ListPart" } \
$NF ~ "ext|ntfs" \
{
j=0 ;
if ($2 ~ /^ext[2-4]$/ || $2 ~ /^ntfs$/)
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]=""\nListPart["i","++j"]="$2 }
else
{ print "ListPart["++i","j"]="$1"\nListPart["i","++j"]="$2"\nListPart["i","++j"]="$3 }
}')
nbDev=$(( "${#ListPart[@]}"/3 ))
for (( n=0; n<nbDev; n++ )); do
echo "$(( n+1 )) ⇒ ${ListPart[$n,0]} ${ListPart[$n,1]} ${ListPart[$n,2]}"
done
while [ -z "$PartNum" ]; do
read -rp "Choisissez le numéro correspondant à votre future partition de données : " PartNum
if [[ ! "$PartNum" =~ ^[1-9][0-9]*$ ]] || ! (( PartNum > 0 && PartNum <= nbDev )); then
echo "Votre choix doit être un nombre entier compris entre 1 et $nbDev."
unset PartNum
fi
done
Part="${ListPart[$(( PartNum-1 )),0]}"
PartLabel="${ListPart[$(( PartNum-1 )),1]}"
PartFstype="${ListPart[$(( PartNum-1 )),2]}"
if [[ -z "$PartLabel" ]]; then
echo "La partition « $Part » n’a pas d’étiquette."
label
else
echo "La partition « $Part » a l’étiquette « $PartLabel »."
while [ -z "$Rep" ]; do
read -rp "Voulez-vous changer l’étiquette de la partition « $Part » ? [O/n] " Rep
case "$Rep" in
N|n)
Label="$PartLabel"
unset Rep
break
;;
Y|y|O|o|"")
label
unset Rep
break
;;
*)
unset Rep
;;
esac
done
fi
while [ -z "$Rep2" ]; do
read -rp "Voulez-vous procéder au montage maintenant pour la partition « $Part » en y mettant pour étiquette « $Label » ? [O/n] " Rep2
case "$Rep2" in
N|n)
echo "Annulation par l’utilisateur !"
unset Rep2
exit 1
;;
Y|y|O|o|"")
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
echo "L’UUID de la partition est déjà présent dans le fstab !"
unmount
elif grep -Eq "LABEL=$Label|by-label/$Label" /etc/fstab; then
echo "L’étiquette « $Label » est déjà utilisée dans le fstab !"
unmount
elif grep -q "^$Part" /etc/mtab; then
echo "La partition « $Part » est déjà montée !"
unmount
fi
# construction des éléments :
if [[ "$PartFstype" =~ ext[2-4] ]]; then
e2label "$Part" "$Label"
echo "LABEL=$Label /media/$Label $PartFstype defaults" >> /etc/fstab
elif [[ "$PartFstype" == "ntfs" ]]; then
ntfslabel "$Part" "$Label"
echo "LABEL=$Label /media/$Label ntfs3 defaults,nofail,x-gvfs-show,nohidden,uid=$SUDO_UID,gid=$SUDO_GID" >> /etc/fstab
fi
mkdir /media/"$Label" 2>/dev/null
systemctl daemon-reload
mount -a 2>/dev/null
mkdir /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/"$SUDO_USER"-"$Label" 2>/dev/null
mkdir /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chown "$SUDO_USER": /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
chmod 700 /media/"$Label"/.Trash-"$SUDO_UID" 2>/dev/null
if [ -e /media/"$Label"/.Trash-"$SUDO_UID" ]; then
echo "-----------------------------------------------------------------"
echo "Script pour montage de partition de données terminé avec succès !"
echo ""
echo "Vous pouvez maintenant accéder à votre partition en parcourant le dossier suivant : « /media/$Label/$SUDO_USER-$Label »."
else
echo "erreur inconnue !"
exit 10
fi
unset Rep2
break
;;
*)
unset Rep2
;;
esac
done
et aussi ajouté " rmdir " , ainsi que les unset pour chaque question à l' utilisateur dans tous les " case " .
Là je pense qu ' on approche la perfection
hors mis shellcheck qui dit :
Line 42:
numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rn) )
^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
j ' ajoute donc les ' " ' , pas de soucis en vue ??
edité dans le script ci-dessus .
Dernière modification par iznobe (Le 17/04/2025, à 18:43)
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne
#224 Le 17/04/2025, à 19:43
- nany
Re : [ SCRIPT ] pour montage automatique partitions internes
le grep a deux motifs :
grep -E "LABEL=$Label|by-label/$Label" /etc/fstab
On peut éviter la répétition :
grep -E "(LABEL=|by-label/)$Label" /etc/fstab
j ' ai modifié un peu le script et integré le tableau donc .
… PartMountPoints="$(grep "$Part" /etc/mtab | cut -d " " -f 2)" …
PartMountPoints=( $(grep "$Part" /etc/mtab | cut -d " " -f 2) )
hors mis shellcheck qui dit :
Line 42: numLines=( $(grep -n "$pmp" /etc/fstab | cut -d ":" -f 1 | sort -rn) ) ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
j ' ajoute donc les ' " '… ??
Non, on VEUT splitter !
Idem pour PartMountPoints ci-dessus. Et fi des avertissements de ShellCheck.
Hors ligne
#225 Le 17/04/2025, à 19:55
- iznobe
Re : [ SCRIPT ] pour montage automatique partitions internes
ok , j ' etais pas sur
bon , j ' envoie la sauce dans le 1er messageet le github .
Merci encore @nany .
retour COMPLET et utilisable de commande | script montage partition ext4
MSI Z490A-pro , i7 10700 , 32 GB RAM .
En ligne