Bon je lance une fonction et c’est la sortie que je reçois:
sed: |: No such file or directory
quatre fois.
Voici les commandes sed exécutées dans la fonction:
sed -i "/${1} {/,/}/d" "$7" sed -i "s/^${3}/${3}\n\n ${1} {\n path \/system\/lib\/soundfx\/boutique\/${4}\n }/g" "$7" sed -i "/${8} {/,/}/d" "$7" sed -i "s/^${6}/${6}\n\n ${8} {\n library ${1}\n uuid ${5}\n }/g" "$7"
Je crois que les variables ne sont pas correctement implémentées, après avoir googlé et empilé les données, j’ai ajouté les guillemets doubles et les crochets, mais même cela n’a pas corrigé le problème.
Exemple de saisie pour fonctionner:
function $DOLSO "$SYSTEM/etc/$AEC" $DOLBYLIBTXT $FILE $DOLBYUUID $DOLBYEFFTXT "$ETC/$AEC" $DOLSO2
Variables utilisées dans l’entrée ci-dessus:
DOLBYLIBTXT="# Dolby Laboratories, Inc. | www.dolby.com | Library" DOLBYEFFTXT="# Dolby Laboratories, Inc. | www.dolby.com | Effect" DOLBYUUID=9d4921da-8225-4f29-aefa-39537a04bcaa DOLSO=ds DOLSO2=dsplus FILE=libdseffect.so SYSTEM=/system ETC=$SYS/etc
et SYS=/system
ou /system/system
(dépend du périphérique)
AEC=audio_effects.conf
Je dois append que les commandes sed fonctionnent sans variables, exemple:
sed -i '/ds {/,/}/d' /system/etc/audio_effects.conf
Je pense que vous devez citer les autres arguments dans l’invocation de votre fonction.
function "$DOLSO" "$SYSTEM/etc/$AEC" "$DOLBYLIBTXT" "$FILE" "$DOLBYUUID" "$DOLBYEFFTXT" "$ETC/$AEC" "$DOLSO2"
Si vous ne les citez pas comme ça, alors vous courez efficacement
function ds "/system/etc/audio_effects.conf" # Dolby Laboratories, Inc. | www.dolby.com | Library libdseffect.so 9d4921da-8225-4f29-aefa-39537a04bcaa # Dolby Laboratories, Inc. | www.dolby.com | Effect "/system/etc/audio_effects.conf" dsplus
et si vous tabulez les arguments, la fonction reçoit:
$1: ds $2: /system/etc/audio_effects.conf $3: # $4: Dolby $5: Laboratories, $6: Inc. $7: | $8: www.dolby.com
etc. Citer votre utilisation de “$ DOLBYLIBTXT” et ainsi de suite résoudra ce problème.