2017-01-03 4 views
0

Okay ich eine Funktion leite und dies ist der Ausgang I erhalten:sed: |: Keine solche Datei oder das Verzeichnis

sed: |: No such file or directory 

viermal.

Hier sind die sed-Befehle in der Funktion lautete:

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" 

Ich glaube, dass die Variablen nicht korrekt umgesetzt, nach googeln und stackoverflowing ich die doppelten Anführungszeichen und Klammern hinzugefügt, aber auch, dass das Problem nicht beheben hat.

Beispiel Eingabe in Funktion:

function $DOLSO "$SYSTEM/etc/$AEC" $DOLBYLIBTXT $FILE $DOLBYUUID $DOLBYEFFTXT "$ETC/$AEC" $DOLSO2 

Variables in oben Eingabe verwendet:

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 

und SYS=/system oder /system/system (abhängig vom Gerät)

AEC=audio_effects.conf 

Ich muß die Sed füge Befehle funktionieren ohne Variablen, Beispiel:

sed -i '/ds {/,/}/d' /system/etc/audio_effects.conf 

Antwort

4

Ich habe eine ziemlich gute Ahnung, dass Sie die anderen Argumente im Aufruf Ihrer Funktion doppelt zitieren müssen.

function "$DOLSO" "$SYSTEM/etc/$AEC" "$DOLBYLIBTXT" "$FILE" "$DOLBYUUID" "$DOLBYEFFTXT" "$ETC/$AEC" "$DOLSO2" 

Wenn Sie nicht über sie wie folgt zitieren, dann sind Sie effektiv laufen

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 

und wenn man die Argumente der Funktion empfängt tabellarisieren:

$1: ds 
$2: /system/etc/audio_effects.conf 
$3: # 
$4: Dolby 
$5: Laboratories, 
$6: Inc. 
$7: | 
$8: www.dolby.com 

und so weiter . Wenn Sie Ihre Verwendung von "$ DOLBYLIBTXT" usw. angeben, wird das behoben.

+0

Sie Sir verdienen eine Aufwertung, leider kann ich Ihnen nicht eins geben :( –

Verwandte Themen