sed:|:没有这样的文件或目录

时间:2017-01-03 02:32:47

标签: linux bash unix awk sed

好吧我正在运行一个函数,这是我收到的输出:

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

1 个答案:

答案 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”等的使用将解决这个问题。