好吧我正在运行一个函数,这是我收到的输出:
req.body
四次。
以下是函数中运行的sed命令:
sed: |: No such file or directory
我认为变量没有正确实现,在谷歌搜索和stackoverflowing之后我添加了双引号和括号,但即使这样也没有解决问题。
功能输入示例:
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"
以上输入中使用的变量:
function $DOLSO "$SYSTEM/etc/$AEC" $DOLBYLIBTXT $FILE $DOLBYUUID $DOLBYEFFTXT "$ETC/$AEC" $DOLSO2
和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
或SYS=/system
(取决于设备)
/system/system
我必须在没有变量的情况下添加sed命令,例如:
AEC=audio_effects.conf
答案 0 :(得分:4)
我有一个非常好的预感,你需要在调用你的函数时双引用其他参数。
function "$DOLSO" "$SYSTEM/etc/$AEC" "$DOLBYLIBTXT" "$FILE" "$DOLBYUUID" "$DOLBYEFFTXT" "$ETC/$AEC" "$DOLSO2"
如果你不这样引用它们,那么你就是在有效地运行
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
如果您将函数收到的参数列表:
$1: ds
$2: /system/etc/audio_effects.conf
$3: #
$4: Dolby
$5: Laboratories,
$6: Inc.
$7: |
$8: www.dolby.com
等等。引用你对“$ DOLBYLIBTXT”等的使用将解决这个问题。