0 votes

Pourquoi les espaces sont convertis en points d'interrogation dans ce script ?

Je tente de modifier un bash script que quelqu'un d'autre a écrit, et bien que ça démarre bien, je rencontre des problèmes.

Pour tous les fichiers qui contiennent un espace, les espaces sont convertis en points d'interrogation (par ex. 20-21 HS Scales Warmup.m4a est en train de devenir 20-21?HS?Scales?Warmup.mp3 ). Je peux dire, à partir de la journalisation, qu'il met des retours à la ligne là où il ne devrait pas, mais je ne sais pas comment l'arrêter.

La source du script est :

PAH=${1?Error: no name given}

FLNAME=$(basename $PAH)
CLPAH=${PAH%/*}

cd $CLPAH

NFLNAME=${FLNAME%%.*}

/opt/homebrew/bin/ffmpeg -n -i "$PAH" -codec:a libmp3lame -qscale:a 2 "$NFLNAME.mp3" && echo "Finished! File can be found at $CLPAH/$NFLNAME" || echo "Fail. There is already a File named $NFLNAME in the same directory"

C'est une commande Alfred que j'ai modifiée à partir de le flux de travail de quelqu'un d'autre

2voto

glenn jackman Points 1869
FLNAME=$(basename $PAH)

manque des citations

FLNAME=$(basename "$PAH")

D'autres manquent aussi de citations. Assurez-vous que vous citez toutes vos variables partout.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X